63 lines
1.7 KiB
YAML
63 lines
1.7 KiB
YAML
services:
|
|
api:
|
|
build:
|
|
context: .
|
|
dockerfile: api.Dockerfile
|
|
volumes:
|
|
- "./data:/var/lib/cloudsave"
|
|
networks:
|
|
- cloudsave_net
|
|
healthcheck:
|
|
test: wget --no-verbose --tries=1 --spider http://localhost:8080/heartbeat || exit 1
|
|
interval: 3s
|
|
timeout: 2s
|
|
retries: 3
|
|
start_period: 10s
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.api-router.rule=Host(`${DOMAIN:-localhost}`) && PathPrefix(`/api`)"
|
|
- "traefik.http.routers.api-router.entrypoints=web"
|
|
- "traefik.http.services.cloudsave-api.loadbalancer.server.port=8080"
|
|
|
|
web:
|
|
build:
|
|
context: .
|
|
dockerfile: web.Dockerfile
|
|
volumes:
|
|
- "./config.json:/var/lib/cloudsave/config.json"
|
|
networks:
|
|
- cloudsave_net
|
|
depends_on:
|
|
api:
|
|
condition: service_healthy
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.web-router.rule=Host(`${DOMAIN:-localhost}`) && PathPrefix(`/web`)"
|
|
- "traefik.http.routers.web-router.entrypoints=web"
|
|
- "traefik.http.services.cloudsave-web.loadbalancer.server.port=8080"
|
|
|
|
proxy:
|
|
image: traefik:3.7.0
|
|
ports:
|
|
- 127.0.0.1:80:80
|
|
- 127.0.0.1:8080:8080
|
|
networks:
|
|
- cloudsave_net
|
|
depends_on:
|
|
api:
|
|
condition: service_healthy
|
|
web:
|
|
condition: service_started
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
command:
|
|
- --api.dashboard=true
|
|
- --api.insecure=true
|
|
- --providers.docker=true
|
|
- --providers.docker.exposedbydefault=false
|
|
- --entrypoints.web.address=:80
|
|
- --log.level=DEBUG
|
|
- --accesslog=true
|
|
|
|
networks:
|
|
cloudsave_net: |