231 lines
5.0 KiB
YAML
231 lines
5.0 KiB
YAML
services:
|
||
certbot:
|
||
build:
|
||
context: ./certbot
|
||
dockerfile: Dockerfile
|
||
container_name: certbot
|
||
volumes:
|
||
- ./certbot/config:/etc/letsencrypt/config
|
||
- certbot_data:/etc/letsencrypt
|
||
- certbot_www:/var/www/certbot
|
||
env_file:
|
||
- .env
|
||
environment:
|
||
- EMAIL=${EMAIL}
|
||
- DOMAINS=${ALL_DOMAINS}
|
||
- STAGING=0
|
||
restart: unless-stopped
|
||
|
||
nginx:
|
||
build:
|
||
context: ./nginx
|
||
dockerfile: Dockerfile
|
||
env_file: .env
|
||
container_name: nginx
|
||
restart: unless-stopped
|
||
ports:
|
||
- "80:80"
|
||
- "443:443"
|
||
volumes:
|
||
- certbot_data:/etc/letsencrypt
|
||
- certbot_www:/var/www/certbot
|
||
- ./stubSite:/usr/share/nginx/stub/html
|
||
- ../yalarba/serv_spa/spa/vue/dist:/usr/share/nginx/yalarba/html
|
||
- ../valitovgaziz/html:/usr/share/nginx/valitovgaziz/html
|
||
- ../yalarba/easySite/easy-site/prod:/usr/share/nginx/easysite102/html
|
||
- ./bbvue/dist:/usr/share/nginx/begushiybashkir/html
|
||
networks:
|
||
- web-network
|
||
- internal
|
||
- app-network
|
||
- bb-network
|
||
- keycloak-network
|
||
depends_on:
|
||
- certbot
|
||
- api
|
||
- api_bb
|
||
- keycloak
|
||
|
||
api:
|
||
build:
|
||
context: ./serv_golang_rest_api
|
||
dockerfile: Dockerfile
|
||
ports:
|
||
- "8888:8080"
|
||
container_name: serv_golang_rest_api
|
||
restart: unless-stopped
|
||
depends_on:
|
||
db:
|
||
condition: service_healthy
|
||
environment:
|
||
# Database connection settings
|
||
DB_HOST: db
|
||
DB_PORT: 5432
|
||
DB_USER: postgres
|
||
DB_PASSWORD: postgres
|
||
DB_NAME: mydb
|
||
APP_PORT: 8080
|
||
networks:
|
||
- app-network
|
||
healthcheck:
|
||
test:
|
||
[
|
||
"CMD",
|
||
"wget",
|
||
"--no-verbose",
|
||
"--tries=1",
|
||
"--spider",
|
||
"http://localhost:8080/health",
|
||
]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 3
|
||
|
||
db:
|
||
image: postgres:15-alpine
|
||
ports:
|
||
- "5432:5432"
|
||
environment:
|
||
POSTGRES_USER: postgres
|
||
POSTGRES_PASSWORD: postgres
|
||
POSTGRES_DB: mydb
|
||
volumes:
|
||
- postgres_data:/var/lib/postgresql/data
|
||
- ./migrations:/docker-entrypoint-initdb.d
|
||
networks:
|
||
- app-network
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||
interval: 5s
|
||
timeout: 10s
|
||
retries: 5
|
||
|
||
api_bb:
|
||
build:
|
||
context: ./api_bb
|
||
dockerfile: Dockerfile
|
||
ports:
|
||
- "7777:8080"
|
||
container_name: api_bb
|
||
restart: unless-stopped
|
||
depends_on:
|
||
db_bb:
|
||
condition: service_healthy
|
||
env_file:
|
||
- ./api_bb/.env
|
||
volumes:
|
||
- uploads_data:/app/uploads
|
||
environment:
|
||
# Database connection settings
|
||
DB_HOST: db_bb
|
||
DB_PORT: 5432
|
||
DB_USER: postgres
|
||
DB_PASSWORD: postgres
|
||
DB_NAME: bb_db
|
||
APP_PORT: 8080
|
||
networks:
|
||
- bb-network
|
||
healthcheck:
|
||
test:
|
||
[
|
||
"CMD",
|
||
"wget",
|
||
"--no-verbose",
|
||
"--tries=1",
|
||
"--spider",
|
||
"http://localhost:8080/api/health",
|
||
]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 3
|
||
|
||
db_bb:
|
||
image: postgres:15-alpine
|
||
ports:
|
||
- "5433:5432"
|
||
environment:
|
||
POSTGRES_USER: postgres
|
||
POSTGRES_PASSWORD: postgres
|
||
POSTGRES_DB: bb_db
|
||
volumes:
|
||
- bb_data:/var/lib/postgresql/data
|
||
networks:
|
||
- bb-network
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||
interval: 5s
|
||
timeout: 10s
|
||
retries: 5
|
||
|
||
|
||
keycloak:
|
||
build:
|
||
context: ./keycloak
|
||
dockerfile: Dockerfile
|
||
container_name: keycloak
|
||
restart: unless-stopped
|
||
environment:
|
||
KEYCLOAK_ADMIN: admin
|
||
KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD:-admin}
|
||
KC_DB_PASSWORD: ${KEYCLOAK_DB_PASSWORD:-keycloak}
|
||
# Используем только hostname-url с путем /auth
|
||
KC_HOSTNAME_URL: https://yalarba.ru/auth
|
||
KC_PROXY: x_forwarded
|
||
KC_HTTP_ENABLED: true
|
||
KC_HTTP_RELATIVE_PATH: /auth
|
||
KC_HOSTNAME_STRICT: true
|
||
KC_HOSTNAME_STRICT_HTTPS: true
|
||
|
||
KC_PROXY=edge
|
||
# или
|
||
# - KC_PROXY=reencrypt
|
||
# или
|
||
#- KC_PROXY=passthrough
|
||
volumes:
|
||
- keycloak_data:/opt/keycloak/data
|
||
networks:
|
||
- keycloak-network
|
||
- internal
|
||
depends_on:
|
||
keycloak-db:
|
||
condition: service_healthy
|
||
|
||
keycloak-db:
|
||
image: postgres:15-alpine
|
||
container_name: keycloak-db
|
||
restart: unless-stopped
|
||
environment:
|
||
POSTGRES_DB: keycloak
|
||
POSTGRES_USER: keycloak
|
||
POSTGRES_PASSWORD: ${KEYCLOAK_DB_PASSWORD:-keycloak}
|
||
volumes:
|
||
- keycloak_db_data:/var/lib/postgresql/data
|
||
networks:
|
||
- keycloak-network
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -U keycloak"]
|
||
interval: 5s
|
||
timeout: 10s
|
||
retries: 5
|
||
|
||
volumes:
|
||
certbot_data:
|
||
certbot_www:
|
||
postgres_data:
|
||
bb_data:
|
||
uploads_data:
|
||
keycloak_data:
|
||
keycloak_db_data:
|
||
|
||
networks:
|
||
web-network:
|
||
driver: bridge
|
||
internal:
|
||
driver: bridge
|
||
app-network:
|
||
driver: bridge
|
||
bb-network:
|
||
driver: bridge
|
||
keycloak-network:
|
||
driver: bridge
|