61 lines
1.6 KiB
YAML
61 lines
1.6 KiB
YAML
# Description: Docker Compose file for running the Django application with MySQL and Nginx
|
|
|
|
services:
|
|
mysql:
|
|
image: mysql:8.0-debian
|
|
platform: linux/amd64
|
|
container_name: kb_mysql
|
|
restart: always
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
|
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
|
MYSQL_USER: ${MYSQL_USER}
|
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
|
volumes:
|
|
- ./mysql_data:/var/lib/mysql
|
|
healthcheck:
|
|
test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
web:
|
|
container_name: kb_web
|
|
build: .
|
|
environment:
|
|
DJANGO_SECRET_KEY: ${DJANGO_SECRET_KEY}
|
|
PRODUCTION: ${PRODUCTION}
|
|
DEBUG: ${DEBUG}
|
|
PUBLIC_URL: ${PUBLIC_URL}
|
|
EMAIL_HOST: ${EMAIL_HOST}
|
|
EMAIL_PORT: ${EMAIL_PORT}
|
|
EMAIL_USE_TLS: ${EMAIL_USE_TLS}
|
|
EMAIL_HOST_USER: ${EMAIL_HOST_USER}
|
|
EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD}
|
|
MYSQL_HOST: mysql
|
|
MYSQL_PORT: 3306
|
|
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
|
MYSQL_USER: ${MYSQL_USER}
|
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
|
volumes:
|
|
- .:/app:rw
|
|
- ./staticfiles:/app/static
|
|
- ./mediafiles:/app/media
|
|
command: bash -c 'cd /app && ./run.sh'
|
|
depends_on:
|
|
mysql:
|
|
condition: service_healthy
|
|
restart: "always"
|
|
nginx:
|
|
image: nginx:latest
|
|
platform: linux/amd64
|
|
container_name: kb_nginx
|
|
ports:
|
|
- ${NGINX_PUBLIC_PORT}:80
|
|
volumes:
|
|
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
|
|
- ./staticfiles:/code/static
|
|
- ./mediafiles:/code/media
|
|
depends_on:
|
|
- web
|
|
restart: "always"
|