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:
|
build-prod:
|
||||||
DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker-compose -f docker-compose.prod.yml up --build -d
|
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:
|
stop-dev:
|
||||||
@docker-compose -f docker-compose.yml down
|
@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:
|
services:
|
||||||
backend:
|
backend:
|
||||||
@ -15,18 +15,12 @@ services:
|
|||||||
- ./deployment/scripts:/app/deployment/scripts/
|
- ./deployment/scripts:/app/deployment/scripts/
|
||||||
- static_files:/usr/src/app/static
|
- static_files:/usr/src/app/static
|
||||||
- media_files:/usr/src/app/media
|
- media_files:/usr/src/app/media
|
||||||
labels:
|
env_file: .env.prod
|
||||||
- "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
|
|
||||||
expose:
|
expose:
|
||||||
- "${APP_PORT:-8000}"
|
- "${APP_PORT:-8000}"
|
||||||
depends_on:
|
depends_on:
|
||||||
db:
|
- db
|
||||||
condition: service_healthy
|
command: [ "/bin/sh", "/app/deployment/scripts/wait-db.sh", "/app/deployment/scripts/backend/start.sh" ]
|
||||||
command: [ "/bin/sh", "/app/deployment/scripts/backend/start.sh" ]
|
|
||||||
|
|
||||||
db:
|
db:
|
||||||
image: postgres:15.2-alpine
|
image: postgres:15.2-alpine
|
||||||
@ -34,7 +28,7 @@ services:
|
|||||||
hostname: "${POSTGRES_HOST:-db}"
|
hostname: "${POSTGRES_HOST:-db}"
|
||||||
volumes:
|
volumes:
|
||||||
- postgres_data_dir:/var/lib/postgresql/data/
|
- postgres_data_dir:/var/lib/postgresql/data/
|
||||||
env_file: .env
|
env_file: .env.prod
|
||||||
expose:
|
expose:
|
||||||
- "${POSTGRES_PORT:-5432}"
|
- "${POSTGRES_PORT:-5432}"
|
||||||
shm_size: 1g
|
shm_size: 1g
|
||||||
@ -61,17 +55,17 @@ services:
|
|||||||
- ./deployment/scripts:/app/deployment/scripts/
|
- ./deployment/scripts:/app/deployment/scripts/
|
||||||
- static_files:/usr/src/app/static
|
- static_files:/usr/src/app/static
|
||||||
- media_files:/usr/src/app/media
|
- media_files:/usr/src/app/media
|
||||||
env_file: .env
|
env_file: .env.prod
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
- redis
|
- redis
|
||||||
- backend
|
- 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-beat:
|
||||||
<<: *celery-worker
|
<<: *celery-worker
|
||||||
container_name: "${APP_NAME}-celery-beat"
|
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:
|
nginx:
|
||||||
image: nginx:latest
|
image: nginx:latest
|
||||||
@ -80,46 +74,11 @@ services:
|
|||||||
- ./deployment/scripts/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
- ./deployment/scripts/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||||
- static_files:/usr/src/app/static
|
- static_files:/usr/src/app/static
|
||||||
- media_files:/usr/src/app/media
|
- media_files:/usr/src/app/media
|
||||||
labels:
|
env_file: .env.prod
|
||||||
- "traefik.enable=true"
|
ports:
|
||||||
- "traefik.http.routers.${APP_NAME}-nginx.rule=Host(`${APP_DOMAIN}`)"
|
- 6380:80
|
||||||
- "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"
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- backend
|
- 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:
|
volumes:
|
||||||
static_files:
|
static_files:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
version: '3.9'
|
version: '3.7'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
backend:
|
backend:
|
||||||
|
Loading…
Reference in New Issue
Block a user