@@ -49,65 +49,36 @@ services:
4949 # Define the port inside of the Docker service to use
5050 - traefik.http.services.adminer.loadbalancer.server.port=8080
5151
52- prestart :
53- image : ' ${DOCKER_IMAGE_BACKEND?Variable not set}:${TAG-latest}'
54- build :
55- context : .
56- dockerfile : backend/Dockerfile
57- depends_on :
58- db :
59- condition : service_healthy
60- restart : true
61- command : bash scripts/prestart.sh
62- env_file :
63- - .env
64- environment :
65- - DOMAIN=${DOMAIN}
66- - FRONTEND_HOST=${FRONTEND_HOST?Variable not set}
67- - ENVIRONMENT=${ENVIRONMENT}
68- - BACKEND_CORS_ORIGINS=${BACKEND_CORS_ORIGINS}
69- - SECRET_KEY=${SECRET_KEY?Variable not set}
70- - FIRST_SUPERUSER=${FIRST_SUPERUSER?Variable not set}
71- - FIRST_SUPERUSER_PASSWORD=${FIRST_SUPERUSER_PASSWORD?Variable not set}
72- - SMTP_HOST=${SMTP_HOST}
73- - SMTP_USER=${SMTP_USER}
74- - SMTP_PASSWORD=${SMTP_PASSWORD}
75- - EMAILS_FROM_EMAIL=${EMAILS_FROM_EMAIL}
76- - POSTGRES_SERVER=db
77- - POSTGRES_PORT=${POSTGRES_PORT}
78- - POSTGRES_DB=${POSTGRES_DB}
79- - POSTGRES_USER=${POSTGRES_USER?Variable not set}
80- - POSTGRES_PASSWORD=${POSTGRES_PASSWORD?Variable not set}
81- - SENTRY_DSN=${SENTRY_DSN}
82-
8352 backend :
84- image : ' ${DOCKER_IMAGE_BACKEND?Variable not set}:${TAG- latest} '
53+ image : backend: latest
8554 depends_on :
8655 db :
8756 condition : service_healthy
8857 restart : true
8958 prestart :
9059 condition : service_completed_successfully
91- env_file :
92- - .env
93- environment :
94- - DOMAIN=${DOMAIN}
95- - FRONTEND_HOST=${FRONTEND_HOST?Variable not set}
96- - ENVIRONMENT=${ENVIRONMENT}
97- - BACKEND_CORS_ORIGINS=${BACKEND_CORS_ORIGINS}
98- - SECRET_KEY=${SECRET_KEY?Variable not set}
99- - FIRST_SUPERUSER=${FIRST_SUPERUSER?Variable not set}
100- - FIRST_SUPERUSER_PASSWORD=${FIRST_SUPERUSER_PASSWORD?Variable not set}
101- - SMTP_HOST=${SMTP_HOST}
102- - SMTP_USER=${SMTP_USER}
103- - SMTP_PASSWORD=${SMTP_PASSWORD}
104- - EMAILS_FROM_EMAIL=${EMAILS_FROM_EMAIL}
105- - POSTGRES_SERVER=db
106- - POSTGRES_PORT=${POSTGRES_PORT}
107- - POSTGRES_DB=${POSTGRES_DB}
108- - POSTGRES_USER=${POSTGRES_USER?Variable not set}
109- - POSTGRES_PASSWORD=${POSTGRES_PASSWORD?Variable not set}
110- - SENTRY_DSN=${SENTRY_DSN}
60+ # The YAML anchor lets the prestart service reuse this environment mapping.
61+ environment : &backend-environment
62+ FRONTEND_HOST : ${FRONTEND_HOST?Variable not set}
63+ ENVIRONMENT : ${ENVIRONMENT}
64+ PROJECT_NAME : ${PROJECT_NAME?Variable not set}
65+ BACKEND_CORS_ORIGINS : ${BACKEND_CORS_ORIGINS}
66+ SECRET_KEY : ${SECRET_KEY?Variable not set}
67+ FIRST_SUPERUSER : ${FIRST_SUPERUSER?Variable not set}
68+ FIRST_SUPERUSER_PASSWORD : ${FIRST_SUPERUSER_PASSWORD?Variable not set}
69+ SMTP_HOST : ${SMTP_HOST}
70+ SMTP_USER : ${SMTP_USER}
71+ SMTP_PASSWORD : ${SMTP_PASSWORD}
72+ EMAILS_FROM_EMAIL : ${EMAILS_FROM_EMAIL}
73+ SMTP_TLS : ${SMTP_TLS}
74+ SMTP_SSL : ${SMTP_SSL}
75+ SMTP_PORT : ${SMTP_PORT}
76+ POSTGRES_SERVER : db
77+ POSTGRES_PORT : ${POSTGRES_PORT}
78+ POSTGRES_DB : ${POSTGRES_DB}
79+ POSTGRES_USER : ${POSTGRES_USER?Variable not set}
80+ POSTGRES_PASSWORD : ${POSTGRES_PASSWORD?Variable not set}
81+ SENTRY_DSN : ${SENTRY_DSN}
11182
11283 healthcheck :
11384 test : ["CMD", "curl", "-f", "http://localhost:8000/api/v1/utils/health-check/"]
@@ -129,5 +100,17 @@ services:
129100 - traefik.http.routers.backend-http.rule=Host(`${DOMAIN?Variable not set}`)
130101 - traefik.http.routers.backend-http.entrypoints=http
131102
103+ prestart :
104+ image : backend:latest
105+ build :
106+ context : .
107+ dockerfile : backend/Dockerfile
108+ depends_on :
109+ db :
110+ condition : service_healthy
111+ restart : true
112+ command : bash scripts/prestart.sh
113+ environment : *backend-environment
114+
132115volumes :
133116 app-db-data :
0 commit comments