DockFlare/docker-compose.yml
2025-09-22 16:41:09 +02:00

90 lines
2.1 KiB
YAML

version: '3.8'
services:
docker-socket-proxy:
image: tecnativa/docker-socket-proxy:v0.4.1
container_name: docker-socket-proxy
restart: unless-stopped
environment:
- DOCKER_HOST=unix:///var/run/docker.sock
- CONTAINERS=1
- EVENTS=1
- NETWORKS=1
- IMAGES=1
- POST=1
- PING=1
- INFO=1
- EXEC=1
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- dockflare-internal
dockflare-init:
image: alpine:3.20
container_name: dockflare-init
command: ["sh", "-c", "chown -R ${DOCKFLARE_UID:-65532}:${DOCKFLARE_GID:-65532} /app/data"]
volumes:
- dockflare_data:/app/data
networks:
- dockflare-internal
restart: "no"
dockflare:
build:
context: ./dockflare
args:
DOCKFLARE_UID: ${DOCKFLARE_UID:-65532}
DOCKFLARE_GID: ${DOCKFLARE_GID:-65532}
container_name: dockflare
restart: unless-stopped
ports:
- "5001:5000"
volumes:
- dockflare_data:/app/data
networks:
- cloudflare-net
- dockflare-internal
depends_on:
docker-socket-proxy:
condition: service_started
dockflare-init:
condition: service_completed_successfully
redis:
condition: service_started
environment:
- STATE_FILE_PATH=/app/data/state.json
- TZ=Europe/Zurich
- REDIS_URL=redis://redis:6379/0
- CACHE_ENABLED=true
- DNS_RECORDS_CACHE_TIMEOUT=300
- DOCKER_HOST=tcp://docker-socket-proxy:2375
labels:
- dockflare.enable=true
- dockflare.hostname=master.dockflare.app
- dockflare.service=http://host.docker.internal:5001
- dockflare.access.policy=bypass
redis:
image: redis:7-alpine
container_name: dockflare-redis
restart: unless-stopped
networks:
- dockflare-internal
volumes:
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 3
volumes:
dockflare_data:
redis-data:
networks:
cloudflare-net:
name: cloudflare-net
external: true
dockflare-internal:
name: dockflare-internal