Files
affiliate_dash/docker-compose.yml
T
2026-07-22 13:34:55 +08:00

77 lines
2.4 KiB
YAML

services:
postgres:
image: ${POSTGRES_IMAGE:-docker.m.daocloud.io/library/postgres:16-alpine}
environment:
- POSTGRES_USER=${POSTGRES_USER:-affiliate}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-affiliate_dev_password}
- POSTGRES_DB=${POSTGRES_DB:-affiliate_dash}
volumes:
- postgres-data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
backend:
build:
context: .
dockerfile: Dockerfile.backend
args:
GO_BUILDER_IMAGE: ${GO_BUILDER_IMAGE:-docker.m.daocloud.io/library/golang:1.26-alpine}
BACKEND_RUNTIME_IMAGE: ${BACKEND_RUNTIME_IMAGE:-docker.m.daocloud.io/library/alpine:3.22}
GOPROXY: ${GOPROXY:-https://goproxy.cn,direct}
GOSUMDB: ${GOSUMDB:-sum.golang.google.cn}
ALPINE_MIRROR: ${ALPINE_MIRROR:-https://mirrors.aliyun.com/alpine}
image: affiliate-backend:latest
ports:
- "8080:8080"
environment:
- PORT=8080
- JWT_SECRET=${JWT_SECRET}
- DATABASE_URL=postgres://${POSTGRES_USER:-affiliate}:${POSTGRES_PASSWORD:-affiliate_dev_password}@postgres:5432/${POSTGRES_DB:-affiliate_dash}?sslmode=disable
- GIN_MODE=${GIN_MODE:-release}
- OPEN_API_KEY=${OPEN_API_KEY}
- OPEN_API_SECRET=${OPEN_API_SECRET}
- OPEN_SIGN_SKEW=${OPEN_SIGN_SKEW:-300}
- OPEN_API_DEBUG=${OPEN_API_DEBUG:-false}
- LOG_FILE=/data/app.log
volumes:
- backend-data:/data
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
depends_on:
postgres:
condition: service_healthy
caddy:
build:
context: .
dockerfile: Dockerfile.caddy
args:
NODE_BUILDER_IMAGE: ${NODE_BUILDER_IMAGE:-docker.m.daocloud.io/library/node:22-alpine}
CADDY_BASE_IMAGE: ${CADDY_BASE_IMAGE:-docker.m.daocloud.io/library/caddy:2-alpine}
NPM_REGISTRY: ${NPM_REGISTRY:-https://registry.npmmirror.com}
image: affiliate-caddy:latest
ports:
- "80:80"
- "443:443"
volumes:
- caddy-data:/data
- caddy-config:/config
depends_on:
backend:
condition: service_healthy
restart: unless-stopped
volumes:
postgres-data:
backend-data:
caddy-data:
caddy-config: