Files
MangoTestingPlatform/docker-compose.yml
2025-11-28 18:56:55 +08:00

106 lines
2.6 KiB
YAML

services:
db:
image: mysql:8.0.40-debian
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
ports:
- "${MYSQL_PORT}:3306"
volumes:
- /mango_data/mysql:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"]
interval: 5s
timeout: 10s
retries: 5
networks:
app_network:
aliases: [db]
minio:
image: minio/minio:RELEASE.2024-12-18T13-15-44Z.fips
restart: unless-stopped
ports:
- "${MINIO_API_PORT}:9000"
- "${MINIO_CONSOLE_PORT}:9001"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
volumes:
- /mango_data/minio:/data
- /etc/localtime:/etc/localtime:ro
command: server /data --console-address ":${MINIO_CONSOLE_PORT}"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:${MINIO_API_PORT}/minio/health/live"]
interval: 5s
timeout: 10s
retries: 5
networks:
app_network:
aliases: [minio]
mango_server:
build:
context: ./MangoServer
dockerfile: Dockerfile
args:
DJANGO_ENV: ${DJANGO_ENV}
restart: unless-stopped
ports:
- "8000:8000"
volumes:
- /etc/localtime:/etc/localtime:ro
depends_on:
db:
condition: service_healthy
minio:
condition: service_healthy
environment:
- DJANGO_SETTINGS_MODULE=src.settings
networks:
app_network:
aliases: [server]
hostname: server
command: >
sh -c "python manage.py migrate --noinput &&
uvicorn src.asgi:application --host 0.0.0.0 --port 8000 --workers 2"
mango-console:
build:
context: ./mango-console
dockerfile: Dockerfile
args:
VUE_ENV: ${VUE_ENV}
restart: unless-stopped
ports:
- "8001:80"
volumes:
- /etc/localtime:/etc/localtime:ro
networks: [app_network]
mango_actuator:
build:
context: ./MangoActuator
dockerfile: Dockerfile
args:
EXECUTOR_TYPE: ${EXECUTOR_TYPE}
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
depends_on:
mango_server:
condition: service_started
networks:
app_network:
aliases: [actuator]
deploy:
restart_policy:
condition: any
delay: 15s
networks:
app_network:
driver: bridge