@@ -3,12 +3,6 @@ services:
33 db :
44 image : postgres:12
55 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
126 volumes :
137 - app-db-data:/var/lib/postgresql/data/pgdata
148 env_file :
@@ -18,154 +12,9 @@ services:
1812 - POSTGRES_PASSWORD=${POSTGRES_PASSWORD?Variable not set}
1913 - POSTGRES_USER=${POSTGRES_USER?Variable not set}
2014 - POSTGRES_DB=${POSTGRES_DB?Variable not set}
15+ ports :
16+ - " 5432:5432"
2117
22- adminer :
23- image : adminer
24- restart : always
25- networks :
26- - traefik-public
27- - default
28- depends_on :
29- - db
30- environment :
31- - ADMINER_DESIGN=pepa-linha-dark
32- labels :
33- - traefik.enable=true
34- - traefik.docker.network=traefik-public
35- - traefik.constraint-label=traefik-public
36- - traefik.http.routers.${STACK_NAME?Variable not set}-adminer-http.rule=Host(`adminer.${DOMAIN?Variable not set}`)
37- - traefik.http.routers.${STACK_NAME?Variable not set}-adminer-http.entrypoints=http
38- - traefik.http.routers.${STACK_NAME?Variable not set}-adminer-http.middlewares=https-redirect
39- - traefik.http.routers.${STACK_NAME?Variable not set}-adminer-https.rule=Host(`adminer.${DOMAIN?Variable not set}`)
40- - traefik.http.routers.${STACK_NAME?Variable not set}-adminer-https.entrypoints=https
41- - traefik.http.routers.${STACK_NAME?Variable not set}-adminer-https.tls=true
42- - traefik.http.routers.${STACK_NAME?Variable not set}-adminer-https.tls.certresolver=le
43- - traefik.http.services.${STACK_NAME?Variable not set}-adminer.loadbalancer.server.port=8080
44-
45- prestart :
46- image : ' ${DOCKER_IMAGE_BACKEND?Variable not set}:${TAG-latest}'
47- build :
48- context : ./backend
49- networks :
50- - traefik-public
51- - default
52- depends_on :
53- db :
54- condition : service_healthy
55- restart : true
56- command : bash scripts/prestart.sh
57- env_file :
58- - .env
59- environment :
60- - DOMAIN=${DOMAIN}
61- - FRONTEND_HOST=${FRONTEND_HOST?Variable not set}
62- - ENVIRONMENT=${ENVIRONMENT}
63- - BACKEND_CORS_ORIGINS=${BACKEND_CORS_ORIGINS}
64- - SECRET_KEY=${SECRET_KEY?Variable not set}
65- - FIRST_SUPERUSER=${FIRST_SUPERUSER?Variable not set}
66- - FIRST_SUPERUSER_PASSWORD=${FIRST_SUPERUSER_PASSWORD?Variable not set}
67- - SMTP_HOST=${SMTP_HOST}
68- - SMTP_USER=${SMTP_USER}
69- - SMTP_PASSWORD=${SMTP_PASSWORD}
70- - EMAILS_FROM_EMAIL=${EMAILS_FROM_EMAIL}
71- - POSTGRES_SERVER=db
72- - POSTGRES_PORT=${POSTGRES_PORT}
73- - POSTGRES_DB=${POSTGRES_DB}
74- - POSTGRES_USER=${POSTGRES_USER?Variable not set}
75- - POSTGRES_PASSWORD=${POSTGRES_PASSWORD?Variable not set}
76- - SENTRY_DSN=${SENTRY_DSN}
77-
78- backend :
79- image : ' ${DOCKER_IMAGE_BACKEND?Variable not set}:${TAG-latest}'
80- restart : always
81- networks :
82- - traefik-public
83- - default
84- depends_on :
85- db :
86- condition : service_healthy
87- restart : true
88- prestart :
89- condition : service_completed_successfully
90- env_file :
91- - .env
92- environment :
93- - DOMAIN=${DOMAIN}
94- - FRONTEND_HOST=${FRONTEND_HOST?Variable not set}
95- - ENVIRONMENT=${ENVIRONMENT}
96- - BACKEND_CORS_ORIGINS=${BACKEND_CORS_ORIGINS}
97- - SECRET_KEY=${SECRET_KEY?Variable not set}
98- - FIRST_SUPERUSER=${FIRST_SUPERUSER?Variable not set}
99- - FIRST_SUPERUSER_PASSWORD=${FIRST_SUPERUSER_PASSWORD?Variable not set}
100- - SMTP_HOST=${SMTP_HOST}
101- - SMTP_USER=${SMTP_USER}
102- - SMTP_PASSWORD=${SMTP_PASSWORD}
103- - EMAILS_FROM_EMAIL=${EMAILS_FROM_EMAIL}
104- - POSTGRES_SERVER=db
105- - POSTGRES_PORT=${POSTGRES_PORT}
106- - POSTGRES_DB=${POSTGRES_DB}
107- - POSTGRES_USER=${POSTGRES_USER?Variable not set}
108- - POSTGRES_PASSWORD=${POSTGRES_PASSWORD?Variable not set}
109- - SENTRY_DSN=${SENTRY_DSN}
110-
111- healthcheck :
112- test : ["CMD", "curl", "-f", "http://localhost:8000/api/v1/utils/health-check/"]
113- interval : 10s
114- timeout : 5s
115- retries : 5
116-
117- build :
118- context : ./backend
119- labels :
120- - traefik.enable=true
121- - traefik.docker.network=traefik-public
122- - traefik.constraint-label=traefik-public
123-
124- - traefik.http.services.${STACK_NAME?Variable not set}-backend.loadbalancer.server.port=8000
125-
126- - traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.rule=Host(`api.${DOMAIN?Variable not set}`)
127- - traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.entrypoints=http
128-
129- - traefik.http.routers.${STACK_NAME?Variable not set}-backend-https.rule=Host(`api.${DOMAIN?Variable not set}`)
130- - traefik.http.routers.${STACK_NAME?Variable not set}-backend-https.entrypoints=https
131- - traefik.http.routers.${STACK_NAME?Variable not set}-backend-https.tls=true
132- - traefik.http.routers.${STACK_NAME?Variable not set}-backend-https.tls.certresolver=le
133-
134- # Enable redirection for HTTP and HTTPS
135- - traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.middlewares=https-redirect
136-
137- frontend :
138- image : ' ${DOCKER_IMAGE_FRONTEND?Variable not set}:${TAG-latest}'
139- restart : always
140- networks :
141- - traefik-public
142- - default
143- build :
144- context : ./frontend
145- args :
146- - VITE_API_URL=https://api.${DOMAIN?Variable not set}
147- - NODE_ENV=production
148- labels :
149- - traefik.enable=true
150- - traefik.docker.network=traefik-public
151- - traefik.constraint-label=traefik-public
152-
153- - traefik.http.services.${STACK_NAME?Variable not set}-frontend.loadbalancer.server.port=80
154-
155- - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-http.rule=Host(`dashboard.${DOMAIN?Variable not set}`)
156- - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-http.entrypoints=http
157-
158- - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-https.rule=Host(`dashboard.${DOMAIN?Variable not set}`)
159- - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-https.entrypoints=https
160- - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-https.tls=true
161- - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-https.tls.certresolver=le
162-
163- # Enable redirection for HTTP and HTTPS
164- - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-http.middlewares=https-redirect
18+
16519volumes :
166- app-db-data :
167-
168- networks :
169- traefik-public :
170- # Allow setting it to false for testing
171- external : true
20+ app-db-data:
0 commit comments