web/prod.docker-compose.yml
2024-07-27 14:11:33 +05:00

82 lines
1.6 KiB
YAML

# https://blog.thelazyfox.xyz/how-to-create-healthchecks-for-docker/
version: '3.7'
services:
caddy:
build:
context: ./
dockerfile: ./DockerfileCaddy
cap_add:
- NET_ADMIN
ports:
- "80:80"
- "443:443"
volumes:
- ./CaddyfileProd:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
networks:
- web_network
healthcheck:
test: ["CMD-SHELL", "curl http://caddy:80/ --max-time 80"]
interval: 30s
start_period: 20s
timeout: 80s
retries: 3
restart: always
web:
build:
context: ./
dockerfile: ./Dockerfile
command: python3 -m server server
volumes:
- .:/app
expose:
- 7080
networks:
- web_network
healthcheck:
test: ["CMD-SHELL", "curl http://localhost:7080/ --max-time 60"]
interval: 30s
start_period: 20s
timeout: 80s
retries: 3
restart: always
mem_limit: 2g
dragonfly:
image: 'docker.dragonflydb.io/dragonflydb/dragonfly'
ulimits:
memlock: -1
expose:
- 6379
networks:
- web_network
volumes:
- dragonflydata:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
start_period: 20s
timeout: 10s
retries: 3
restart: always
autoheal:
restart: always
image: willfarrell/autoheal
environment:
- AUTOHEAL_CONTAINER_LABEL=all
volumes:
- /var/run/docker.sock:/var/run/docker.sock
volumes:
caddy_data:
caddy_config:
dragonflydata:
networks:
web_network:
driver: bridge