You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.6 KiB
YAML
62 lines
1.6 KiB
YAML
# deploy/docker-compose.yml — dev(단일 머신) 자기호스트
|
|
# 기본: SQLite 볼륨 + Ollama 로컬 + Caddy HTTPS. prod 오버라이드는 docker-compose.prod.yml.
|
|
services:
|
|
backend:
|
|
build: ../backend
|
|
env_file: [.env.prod]
|
|
environment:
|
|
DATABASE_URL: sqlite:////data/ari.db
|
|
OLLAMA_HOST: http://ollama:11434
|
|
WORKER_ENABLED: "false" # 웹 컨테이너는 스케줄러 미가동(잡 중복 방지)
|
|
BACKUP_DIR: /backups
|
|
volumes:
|
|
- ari-data:/data
|
|
- ari-backups:/backups
|
|
depends_on: [ollama]
|
|
restart: unless-stopped
|
|
|
|
worker:
|
|
build: ../backend
|
|
env_file: [.env.prod]
|
|
environment:
|
|
DATABASE_URL: sqlite:////data/ari.db
|
|
OLLAMA_HOST: http://ollama:11434
|
|
WORKER_ENABLED: "true" # 스케줄러 전용 컨테이너 1개만 true
|
|
command: ["python", "-m", "app.worker.runner"]
|
|
volumes:
|
|
- ari-data:/data
|
|
- ari-backups:/backups
|
|
depends_on: [backend, ollama]
|
|
restart: unless-stopped
|
|
|
|
frontend:
|
|
build: ../frontend
|
|
environment:
|
|
NEXT_PUBLIC_API_BASE: "" # 동일 출처(Caddy 가 /api 를 backend 로 라우팅)
|
|
NEXT_PUBLIC_AUTH_ENABLED: "true"
|
|
depends_on: [backend]
|
|
restart: unless-stopped
|
|
|
|
ollama:
|
|
image: ollama/ollama:latest
|
|
volumes:
|
|
- ollama-models:/root/.ollama
|
|
restart: unless-stopped
|
|
|
|
caddy:
|
|
image: caddy:2-alpine
|
|
ports: ["80:80", "443:443"]
|
|
volumes:
|
|
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
|
- caddy-data:/data
|
|
- caddy-config:/config
|
|
depends_on: [frontend, backend]
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
ari-data:
|
|
ari-backups:
|
|
ollama-models:
|
|
caddy-data:
|
|
caddy-config:
|