71 lines
1.5 KiB
YAML
71 lines
1.5 KiB
YAML
services:
|
|
|
|
postgresql:
|
|
image: postgres:16
|
|
container_name: ${PROJECT_NAME}-postgresql
|
|
restart: ${RESTART_POLICY}
|
|
env_file: .env
|
|
environment:
|
|
POSTGRES_USER: ${POSTGRES_USER}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_DB: ${POSTGRES_DB}
|
|
volumes:
|
|
- ./data_postgresql:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
|
|
interval: 30s
|
|
timeout: 60s
|
|
retries: 5
|
|
expose:
|
|
- 5432
|
|
|
|
django:
|
|
build:
|
|
context: ./
|
|
dockerfile: ./Dockerfiles/django/Dockerfile
|
|
container_name: ${PROJECT_NAME}-django
|
|
restart: ${RESTART_POLICY}
|
|
entrypoint: /django-launcher.sh
|
|
volumes:
|
|
- .:/usr/src/app/
|
|
env_file: .env
|
|
expose:
|
|
- 8000
|
|
depends_on:
|
|
- postgresql
|
|
- redis
|
|
|
|
nginx:
|
|
image: nginx:alpine
|
|
restart: ${RESTART_POLICY}
|
|
env_file: .env
|
|
ports:
|
|
- 8000:80
|
|
volumes:
|
|
- ./static:/usr/share/nginx/html/static
|
|
- ./media:/usr/share/nginx/html/media
|
|
- ./nginx.conf:/etc/nginx/nginx.conf
|
|
depends_on:
|
|
- django
|
|
|
|
redis:
|
|
image: redis:alpine
|
|
restart: ${RESTART_POLICY}
|
|
container_name: ${PROJECT_NAME}-redis
|
|
env_file: .env
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 30s
|
|
timeout: 60s
|
|
retries: 5
|
|
expose:
|
|
- ${REDIS_PORT}
|
|
|
|
mailhog:
|
|
image: mailhog/mailhog:latest
|
|
restart: ${RESTART_POLICY}
|
|
container_name: ${PROJECT_NAME}-mailhog
|
|
env_file: .env
|
|
expose:
|
|
- 1025
|