On met en place la version prod
This commit is contained in:
parent
47615140cb
commit
362013d0df
3
Makefile
3
Makefile
@ -59,6 +59,9 @@ build-dev-log:
|
||||
build-prod:
|
||||
DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker-compose -f docker-compose.prod.yml up --build -d
|
||||
|
||||
build-prod-log:
|
||||
DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker-compose -f docker-compose.prod.yml up --build
|
||||
|
||||
stop-dev:
|
||||
@docker-compose -f docker-compose.yml down
|
||||
|
||||
|
0
deployment/scripts/backend/start.sh
Normal file → Executable file
0
deployment/scripts/backend/start.sh
Normal file → Executable file
0
deployment/scripts/celery/start-beat.sh
Normal file → Executable file
0
deployment/scripts/celery/start-beat.sh
Normal file → Executable file
0
deployment/scripts/celery/start-worker.sh
Normal file → Executable file
0
deployment/scripts/celery/start-worker.sh
Normal file → Executable file
7
deployment/scripts/wait-db.sh
Normal file
7
deployment/scripts/wait-db.sh
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
wait_for_it=$(dirname "$0")/wait-for-it.sh
|
||||
|
||||
chmod +x $wait_for_it
|
||||
chmod +x $1
|
||||
|
||||
$wait_for_it -h $POSTGRES_HOST -p $POSTGRES_PORT -- $1
|
0
deployment/scripts/backend/wait-for-it.sh → deployment/scripts/wait-for-it.sh
Normal file → Executable file
0
deployment/scripts/backend/wait-for-it.sh → deployment/scripts/wait-for-it.sh
Normal file → Executable file
@ -1,4 +1,4 @@
|
||||
version: '3.9'
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
backend:
|
||||
@ -15,18 +15,12 @@ services:
|
||||
- ./deployment/scripts:/app/deployment/scripts/
|
||||
- static_files:/usr/src/app/static
|
||||
- media_files:/usr/src/app/media
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.${APP_NAME}-backend.rule=Host(`${APP_DOMAIN}`)"
|
||||
- "traefik.http.routers.${APP_NAME}-backend.entrypoints=web"
|
||||
- "traefik.http.services.${APP_NAME}-backend.loadbalancer.server.port=${APP_PORT:-8000}"
|
||||
env_file: .env
|
||||
env_file: .env.prod
|
||||
expose:
|
||||
- "${APP_PORT:-8000}"
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
command: [ "/bin/sh", "/app/deployment/scripts/backend/start.sh" ]
|
||||
- db
|
||||
command: [ "/bin/sh", "/app/deployment/scripts/wait-db.sh", "/app/deployment/scripts/backend/start.sh" ]
|
||||
|
||||
db:
|
||||
image: postgres:15.2-alpine
|
||||
@ -34,7 +28,7 @@ services:
|
||||
hostname: "${POSTGRES_HOST:-db}"
|
||||
volumes:
|
||||
- postgres_data_dir:/var/lib/postgresql/data/
|
||||
env_file: .env
|
||||
env_file: .env.prod
|
||||
expose:
|
||||
- "${POSTGRES_PORT:-5432}"
|
||||
shm_size: 1g
|
||||
@ -61,17 +55,17 @@ services:
|
||||
- ./deployment/scripts:/app/deployment/scripts/
|
||||
- static_files:/usr/src/app/static
|
||||
- media_files:/usr/src/app/media
|
||||
env_file: .env
|
||||
env_file: .env.prod
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
- backend
|
||||
command: [ "/bin/sh", "/app/deployment/scripts/celery/start-worker.sh" ]
|
||||
command: [ "/bin/sh", "/app/deployment/scripts/wait-db.sh", "/app/deployment/scripts/celery/start-worker.sh" ]
|
||||
|
||||
celery-beat:
|
||||
<<: *celery-worker
|
||||
container_name: "${APP_NAME}-celery-beat"
|
||||
command: [ "/bin/sh", "/app/deployment/scripts/celery/start-beat.sh" ]
|
||||
command: [ "/bin/sh", "/app/deployment/scripts/wait-db.sh", "/app/deployment/scripts/celery/start-beat.sh" ]
|
||||
|
||||
nginx:
|
||||
image: nginx:latest
|
||||
@ -80,46 +74,11 @@ services:
|
||||
- ./deployment/scripts/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||
- static_files:/usr/src/app/static
|
||||
- media_files:/usr/src/app/media
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.${APP_NAME}-nginx.rule=Host(`${APP_DOMAIN}`)"
|
||||
- "traefik.http.routers.${APP_NAME}-nginx.entrypoints=websecure"
|
||||
- "traefik.http.services.${APP_NAME}-nginx.loadbalancer.server.port=80"
|
||||
- "traefik.http.routers.${APP_NAME}-nginx.tls=true"
|
||||
- "traefik.http.routers.${APP_NAME}-nginx.tls.certresolver=myresolver"
|
||||
expose:
|
||||
- "80"
|
||||
- "443"
|
||||
env_file: .env.prod
|
||||
ports:
|
||||
- 6380:80
|
||||
depends_on:
|
||||
- backend
|
||||
- traefik
|
||||
|
||||
traefik:
|
||||
image: traefik:v2.5
|
||||
container_name: "${APP_NAME}-traefik"
|
||||
command:
|
||||
- "--providers.docker=true"
|
||||
- "--providers.docker.exposedbydefault=false"
|
||||
- "--providers.docker.watch=true"
|
||||
- "--entrypoints.web.address=:80"
|
||||
- "--entrypoints.websecure.address=:443"
|
||||
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
|
||||
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
|
||||
- "--entrypoints.web.http.redirections.entrypoint.permanent=true"
|
||||
- "--api.dashboard=true"
|
||||
- "--certificatesresolvers.myresolver.acme.httpchallenge=true"
|
||||
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
|
||||
- "--certificatesresolvers.myresolver.acme.email=${LETSENCRYPT_EMAIL}"
|
||||
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
||||
- "--log.level=DEBUG"
|
||||
- "--accesslog=true"
|
||||
- "--tracing=true"
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||
- "./letsencrypt:/letsencrypt"
|
||||
|
||||
volumes:
|
||||
static_files:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: '3.9'
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
backend:
|
||||
|
Loading…
Reference in New Issue
Block a user