11services :
2-
3- db :
4- image : postgres:18
5- restart : always
6- healthcheck :
7- test : ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
8- interval : 10s
9- retries : 5
10- start_period : 30s
11- timeout : 10s
12- volumes :
13- - app-db-data:/var/lib/postgresql/data/pgdata
14- env_file :
15- - .env
16- environment :
17- - PGDATA=/var/lib/postgresql/data/pgdata
18- - POSTGRES_PASSWORD=${POSTGRES_PASSWORD?Variable not set}
19- - POSTGRES_USER=${POSTGRES_USER?Variable not set}
20- - POSTGRES_DB=${POSTGRES_DB?Variable not set}
21-
222 adminer :
233 image : adminer
244 restart : always
255 networks :
266 - traefik-public
277 - default
28- depends_on :
29- - db
308 environment :
319 - ADMINER_DESIGN=pepa-linha-dark
3210 labels :
@@ -48,12 +26,7 @@ services:
4826 context : .
4927 dockerfile : backend/Dockerfile
5028 networks :
51- - traefik-public
5229 - default
53- depends_on :
54- db :
55- condition : service_healthy
56- restart : true
5730 command : bash scripts/prestart.sh
5831 env_file :
5932 - .env
@@ -69,7 +42,7 @@ services:
6942 - SMTP_USER=${SMTP_USER}
7043 - SMTP_PASSWORD=${SMTP_PASSWORD}
7144 - EMAILS_FROM_EMAIL=${EMAILS_FROM_EMAIL}
72- - POSTGRES_SERVER=db
45+ - POSTGRES_SERVER=${POSTGRES_SERVER?Variable not set}
7346 - POSTGRES_PORT=${POSTGRES_PORT}
7447 - POSTGRES_DB=${POSTGRES_DB}
7548 - POSTGRES_USER=${POSTGRES_USER?Variable not set}
@@ -83,11 +56,7 @@ services:
8356 - traefik-public
8457 - default
8558 depends_on :
86- db :
87- condition : service_healthy
88- restart : true
89- prestart :
90- condition : service_completed_successfully
59+ - prestart
9160 env_file :
9261 - .env
9362 environment :
@@ -102,43 +71,38 @@ services:
10271 - SMTP_USER=${SMTP_USER}
10372 - SMTP_PASSWORD=${SMTP_PASSWORD}
10473 - EMAILS_FROM_EMAIL=${EMAILS_FROM_EMAIL}
105- - POSTGRES_SERVER=db
74+ - POSTGRES_SERVER=${POSTGRES_SERVER?Variable not set}
10675 - POSTGRES_PORT=${POSTGRES_PORT}
10776 - POSTGRES_DB=${POSTGRES_DB}
10877 - POSTGRES_USER=${POSTGRES_USER?Variable not set}
10978 - POSTGRES_PASSWORD=${POSTGRES_PASSWORD?Variable not set}
11079 - SENTRY_DSN=${SENTRY_DSN}
111-
11280 healthcheck :
11381 test : ["CMD", "curl", "-f", "http://localhost:8000/api/v1/utils/health-check/"]
11482 interval : 10s
11583 timeout : 5s
11684 retries : 5
117-
11885 build :
11986 context : .
12087 dockerfile : backend/Dockerfile
12188 labels :
12289 - traefik.enable=true
12390 - traefik.docker.network=traefik-public
12491 - traefik.constraint-label=traefik-public
125-
12692 - traefik.http.services.${STACK_NAME?Variable not set}-backend.loadbalancer.server.port=8000
127-
12893 - traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.rule=Host(`api.${DOMAIN?Variable not set}`)
12994 - traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.entrypoints=http
130-
13195 - traefik.http.routers.${STACK_NAME?Variable not set}-backend-https.rule=Host(`api.${DOMAIN?Variable not set}`)
13296 - traefik.http.routers.${STACK_NAME?Variable not set}-backend-https.entrypoints=https
13397 - traefik.http.routers.${STACK_NAME?Variable not set}-backend-https.tls=true
13498 - traefik.http.routers.${STACK_NAME?Variable not set}-backend-https.tls.certresolver=le
135-
136- # Enable redirection for HTTP and HTTPS
13799 - traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.middlewares=https-redirect
138100
139101 frontend :
140102 image : ' ${DOCKER_IMAGE_FRONTEND?Variable not set}:${TAG-latest}'
141103 restart : always
104+ ports :
105+ - " 80:80"
142106 networks :
143107 - traefik-public
144108 - default
@@ -152,23 +116,17 @@ services:
152116 - traefik.enable=true
153117 - traefik.docker.network=traefik-public
154118 - traefik.constraint-label=traefik-public
155-
156119 - traefik.http.services.${STACK_NAME?Variable not set}-frontend.loadbalancer.server.port=80
157-
158120 - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-http.rule=Host(`dashboard.${DOMAIN?Variable not set}`)
159121 - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-http.entrypoints=http
160-
161122 - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-https.rule=Host(`dashboard.${DOMAIN?Variable not set}`)
162123 - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-https.entrypoints=https
163124 - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-https.tls=true
164125 - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-https.tls.certresolver=le
165-
166- # Enable redirection for HTTP and HTTPS
167126 - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-http.middlewares=https-redirect
168- volumes :
169- app-db-data :
170127
171128networks :
172129 traefik-public :
173- # Allow setting it to false for testing
174130 external : true
131+
132+
0 commit comments