This commit is contained in:
godd0t
2023-05-10 12:09:50 +02:00
parent b0627a98bf
commit f0e721955c
10 changed files with 130 additions and 40 deletions

View File

@@ -13,17 +13,17 @@ services:
volumes:
- ./src:/usr/src/app/
- ./deployment/scripts:/app/deployment/scripts/
- static_files:/usr/src/app/static
labels:
- "traefik.enable=true"
- "traefik.http.routers.${APP_NAME}-backend.rule=Host(`${APP_DOMAIN}`)"
- "traefik.http.routers.${APP_NAME}-backend.rule=Host(`${APP_HOST}`)"
- "traefik.http.routers.${APP_NAME}-backend.entrypoints=web-secure"
- "traefik.http.services.${APP_NAME}-backend.loadbalancer.server.port=${APP_PORT}"
# ports:
# - "${APP_PORT}:${APP_PORT}"
- "traefik.http.routers.${APP_NAME}-backend.tls.certresolver=letsencrypt"
env_file: .env
depends_on:
db:
condition: service_healthy
- db
- redis
command: [ "/bin/sh", "/app/deployment/scripts/backend/start.sh" ]
db:
@@ -36,8 +36,7 @@ services:
ports:
- "5432:5432"
shm_size: 1g
healthcheck:
test: ["CMD", "pg_isready", "-U", "${POSTGRES_USER}", "-d", "${POSTGRES_DB}"]
redis:
container_name: "${APP_NAME}-redis"
@@ -65,21 +64,43 @@ services:
container_name: "${APP_NAME}-celery-beat"
command: [ "/bin/sh", "/app/deployment/scripts/celery/start-beat.sh" ]
nginx:
image: nginx:latest
container_name: "${APP_NAME}-nginx"
volumes:
- ./deployment/scripts/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- static_files:/usr/src/app/static
labels:
- "traefik.enable=true"
- "traefik.http.routers.${APP_NAME}-nginx.rule=Host(`${APP_HOST}`) && PathPrefix(`/static`)"
- "traefik.http.routers.${APP_NAME}-nginx.entrypoints=web"
- "traefik.http.services.${APP_NAME}-nginx.loadbalancer.server.port=80"
depends_on:
- backend
traefik:
image: traefik:v2.5
container_name: "${APP_NAME}-traefik"
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web-secure.address=:443"
- "--certificatesresolvers.letsencrypt.acme.email=${LETSENCRYPT_EMAIL}"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./letsencrypt:/letsencrypt"
networks:
- default
volumes:
static_files:
postgres_data_dir:
redis_data:
redis_data:
letsencrypt: