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

172 lines
4.2 KiB
YAML

# https://blog.thelazyfox.xyz/how-to-create-healthchecks-for-docker/
version: '3.7'
services:
caddy_freedium:
build:
context: ./
dockerfile: ./DockerfileCaddy
cap_add:
- NET_ADMIN
ports:
- "6752:6752"
volumes:
- ./CaddyfileDev:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
networks:
- caddy_net
healthcheck:
test: ["CMD-SHELL", "curl -f http://caddy_freedium:6752/ --max-time 80 --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3 Safari/605.1.15'"]
interval: 30s
start_period: 20s
timeout: 80s
retries: 3
restart: always
stop_grace_period: 2m
wgcf1:
image: neilpang/wgcf-docker:latest
volumes:
# - ./wgcf:/wgcf
- /lib/modules:/lib/modules
- ./scripts/entryWGCF.sh:/entry.sh
- /etc/localtime:/etc/localtime:ro
privileged: true
sysctls:
net.ipv6.conf.all.disable_ipv6: 0
cap_add:
- NET_ADMIN
# ports:
# - "9681:1080"
restart: always
networks:
- caddy_net
healthcheck:
test: curl -fs https://www.cloudflare.com/cdn-cgi/trace | grep -q -E 'warp=(on|plus)' && exit 0 || exit 1
interval: 5s
timeout: 2s
retries: 10
dante_1:
image: shturman/dante:1.4.2
volumes:
- ./scripts/dante.config:/etc/sockd.conf
- /etc/localtime:/etc/localtime:ro
restart: always
environment:
- CFGFILE=/etc/sockd.conf
network_mode: "service:wgcf1"
depends_on:
wgcf1:
condition: service_healthy
web:
build:
context: ./
dockerfile: ./Dockerfile
command: python3 -m server server
volumes:
# - ./.env:/app/.env
# - ./server/user_data/logs:/app/server/user_data/logs
- .:/app
- ./core/medium_parser/:/app/medium_parser
- ./core/rl_string_helper/:/app/rl_string_helper
# develop:
# watch:
# - action: rebuild
# path: ./server
# target: /app/server
# - action: rebuild
# path: ./core
# target: /app/core
# - action: rebuild
# path: ./rl_string_helper
# target: /app/rl_string_helper
# - action: rebuild
# path: ./database-lib
# target: /app/database-lib
# - action: rebuild
# path: "**/requirements.txt"
# - action: rebuild
# path: "**/requirements-fast.txt"
ports:
- "7080:7080"
networks:
- caddy_net
# healthcheck:
# test: ["CMD-SHELL", "curl -f http://web:7080/ --max-time 80 --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3 Safari/605.1.15'"]
# interval: 30s
# start_period: 20s
# timeout: 80s
# retries: 3
# restart: always
mem_limit: 4g
stop_grace_period: 2m
# redis_service:
# image: redis:latest
# networks:
# - caddy_net
# healthcheck:
# test: ["CMD", "redis-cli", "ping"]
# interval: 30s
# start_period: 20s
# timeout: 10s
# retries: 3
# restart: always
# stop_grace_period: 2m
redis_service:
image: 'docker.dragonflydb.io/dragonflydb/dragonfly'
ulimits:
memlock: -1
# expose:
# - 6379
networks:
- caddy_net
volumes:
- dragonflydata:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
start_period: 20s
timeout: 10s
retries: 3
restart: always
stop_grace_period: 2m
# mem_limit: 1g
postgres:
image: postgres:16.3-alpine3.20
networks:
- caddy_net
# ports:
# - 5432:5432
volumes:
# - ~/apps/postgres:/var/lib/postgresql/data
- ./postgres:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
- POSTGRES_DB=postgres
stop_grace_period: 2m
autoheal:
restart: always
image: willfarrell/autoheal
environment:
- AUTOHEAL_CONTAINER_LABEL=all
volumes:
- /var/run/docker.sock:/var/run/docker.sock
stop_grace_period: 2m
volumes:
caddy_data:
caddy_config:
dragonflydata:
networks:
caddy_net:
external: true