@@ -11,8 +11,8 @@ services:
1111 POSTGRES_DB : ${POSTGRES_DB}
1212 POSTGRES_USER : ${POSTGRES_USER}
1313 POSTGRES_PASSWORD : ${POSTGRES_PASSWORD}
14- ports :
15- - " ${POSTGRES_PORT}:5432"
14+ # ports:
15+ # - "${POSTGRES_PORT}:5432"
1616 volumes :
1717 - postgres_data:/var/lib/postgresql/data
1818 healthcheck :
@@ -31,30 +31,63 @@ services:
3131 - .env
3232 command : >
3333 sh -c "python manage.py migrate &&
34- gunicorn myproject.wsgi:application --bind 0.0.0.0:8000"
34+ python manage.py collectstatic --noinput &&
35+ gunicorn myproject.wsgi:application --bind 0.0.0.0:8000"
3536 volumes :
36- - .:/app
37- ports :
38- - " 8000:8000"
39- environment :
40- DB_NAME : ${DB_NAME}
41- DB_USER : ${DB_USER}
42- DB_PASSWORD : ${DB_PASSWORD}
43- DB_HOST : ${DB_HOST}
44- DB_PORT : ${DB_PORT}
45- DEBUG : ${DEBUG}
46- SECRET_KEY : ${SECRET_KEY}
37+ - .:/app:ro # en producción es preferible readonly o no montar (a gusto)
38+ - ./logs/web:/var/log/app # logs persistentes del servicio web
39+ # ports:
40+ # - "8000:8000"
41+ # environment:
42+ # DB_NAME: ${DB_NAME}
43+ # DB_USER: ${DB_USER}
44+ # DB_PASSWORD: ${DB_PASSWORD}
45+ # DB_HOST: ${DB_HOST}
46+ # DB_PORT: ${DB_PORT}
47+ # DEBUG: ${DEBUG}
48+ # SECRET_KEY: ${SECRET_KEY}
4749 depends_on :
4850 db :
4951 condition : service_healthy
5052 healthcheck :
51- test : ["CMD", "curl", "-f", "http://localhost:8000"]
53+ test : ["CMD", "curl", "-f", "http://localhost:8000/health/ || exit 1 "]
5254 interval : 10s
5355 timeout : 5s
5456 retries : 5
5557 networks :
5658 - django_network
5759
60+ nginx :
61+ image : nginx:stable-alpine
62+ container_name : django_nginx
63+ ports :
64+ - " 80:80"
65+ volumes :
66+ - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
67+ - ./staticfiles:/static:ro # carpeta donde collectstatic pondrá los archivos
68+ - ./logs/nginx:/var/log/nginx # logs persistentes de nginx
69+ depends_on :
70+ - web
71+ networks :
72+ - django_network
73+
74+ pgadmin :
75+ image : dpage/pgadmin4
76+ container_name : pgadmin
77+ env_file :
78+ - .env
79+ environment :
80+ PGADMIN_DEFAULT_EMAIL : ${PGADMIN_DEFAULT_EMAIL}
81+ PGADMIN_DEFAULT_PASSWORD : ${PGADMIN_DEFAULT_PASSWORD}
82+ ports :
83+ - " 5050:80"
84+ volumes :
85+ - ./logs/pgadmin:/var/lib/pgadmin
86+ depends_on :
87+ - db
88+ networks :
89+ - django_network
90+
5891volumes :
5992 postgres_data :
6093
0 commit comments