167 lines
3.1 KiB
YAML
167 lines
3.1 KiB
YAML
services:
|
||
|
||
db:
|
||
image: postgres:16
|
||
container_name: db
|
||
profiles:
|
||
- prod
|
||
env_file:
|
||
- .env
|
||
ports:
|
||
- "${PGPORT}:${PGPORT}"
|
||
volumes:
|
||
- postgres-db:/var/lib/postgresql/data
|
||
environment:
|
||
- POSTGRES_USER=${PGUSER}
|
||
- POSTGRES_PASSWORD=${PGPASSWORD}
|
||
- POSTGRES_DB=${PGDATABASE}
|
||
restart: unless-stopped
|
||
|
||
api:
|
||
container_name: api
|
||
build:
|
||
context: ./api
|
||
dockerfile: Dockerfile
|
||
profiles:
|
||
- prod
|
||
env_file:
|
||
- .env
|
||
ports:
|
||
- "${SERVER_PORT}:${SERVER_PORT}"
|
||
volumes:
|
||
- api:/usr/src/app
|
||
depends_on:
|
||
- db
|
||
command: ./bin/api
|
||
restart: unless-stopped
|
||
|
||
migrator:
|
||
container_name: migrator
|
||
profiles:
|
||
- prod
|
||
build:
|
||
context: ./migrator
|
||
dockerfile: Dockerfile
|
||
env_file:
|
||
- .env
|
||
depends_on:
|
||
- api
|
||
- db
|
||
volumes:
|
||
- goose:/migrations
|
||
command: goose up
|
||
|
||
spa:
|
||
container_name: spa
|
||
profiles:
|
||
- prod
|
||
build:
|
||
context: ./spa
|
||
dockerfile: Dockerfile
|
||
env_file:
|
||
- .env
|
||
|
||
nginx:
|
||
build:
|
||
context: ./nginx
|
||
dockerfile: Dockerfile
|
||
profiles:
|
||
- prod
|
||
- dev
|
||
env_file: .env
|
||
container_name: nginx
|
||
restart: unless-stopped
|
||
ports:
|
||
- "80:80"
|
||
- "443:443"
|
||
volumes:
|
||
- certbot_data:/etc/letsencrypt
|
||
- certbot_www:/var/www/certbot
|
||
- ./spa/app:/usr/share/nginx/html
|
||
networks:
|
||
- web-network
|
||
- internal
|
||
depends_on:
|
||
- certbot
|
||
|
||
certbot:
|
||
build:
|
||
context: ./certbot
|
||
dockerfile: Dockerfile
|
||
container_name: certbot
|
||
profiles:
|
||
- prod
|
||
- dev
|
||
volumes:
|
||
- ./certbot/config:/etc/letsencrypt/config
|
||
- certbot_data:/etc/letsencrypt
|
||
- certbot_www:/var/www/certbot
|
||
env_file:
|
||
- .env
|
||
environment:
|
||
- EMAIL=valitovgaziz@yandex.ru
|
||
- DOMAINS=yalarba.ru
|
||
- STAGING=0
|
||
restart: unless-stopped
|
||
|
||
keycloak:
|
||
build:
|
||
context: ./keycloak
|
||
dockerfile: Dockerfile
|
||
container_name: keycloak
|
||
ports:
|
||
- "8080:8080"
|
||
profiles:
|
||
- prod
|
||
- dev
|
||
- kk
|
||
environment:
|
||
KC_ADMIN: admin
|
||
KC_ADMIN_PASSWORD: admin
|
||
KC_DB: postgres
|
||
KC_DB_URL: jdbc:postgresql://kk_db:5432/keycloak
|
||
KC_DB_USERNAME: postgres
|
||
KC_DB_PASSWORD: postgres
|
||
PROXY_ADDRESS_FORWARDING: true
|
||
KС_HTTPS_PORT: 8443
|
||
KС_HTTP_PORT: 8080
|
||
KС_LOGLEVEL: INFO
|
||
KС_HTTP_PROXY: true
|
||
KС_HTTPS_REDIRECT: false
|
||
KC_HOSTNAME_STRICT: false
|
||
KC_PROXY: edge
|
||
KC_HTTP_ENABLED: true
|
||
KC_HOSTNAME=yalarba.ru
|
||
KC_FRONTEND_URL=https://yalarba.ru/auth
|
||
command: start --optimized
|
||
networks:
|
||
- internal
|
||
|
||
kk_db:
|
||
image: postgres:16
|
||
container_name: kk_db
|
||
profiles:
|
||
- prod
|
||
- dev
|
||
environment:
|
||
POSTGRES_DB: keycloak
|
||
POSTGRES_USER: postgres
|
||
POSTGRES_PASSWORD: postgres
|
||
volumes:
|
||
- keycloak-postgres:/var/lib/postgresql/data
|
||
networks:
|
||
- internal
|
||
|
||
volumes:
|
||
api:
|
||
postgres-db:
|
||
goose:
|
||
certbot_data:
|
||
certbot_www:
|
||
keycloak-postgres:
|
||
|
||
networks:
|
||
web-network:
|
||
driver: bridge
|
||
internal:
|