[파일 목록] - Dockerfile: GUARDiA ITSM Python 3.11-slim 이미지 - 비루트(guardia) 계정 실행 - 헬스체크 내장 - docker-compose.yml: 개발/테스트 풀스택 - guardia-itsm, nginx, postgres:15, redis:7, ollama/ollama, tomcat:9 - Ollama 모델은 볼륨 마운트 (이미지 외부) - docker-compose.prod.yml: 운영 환경 오버라이드 - 외부 포트 차단, 호스트 경로 마운트 - docker-compose.gpu.yml: NVIDIA GPU 오버라이드 - docker-start.sh: dev|prod|gpu 모드 빠른 시작 - .dockerignore: 보안 파일(.env, *.db) 제외 - docker/nginx/guardia.conf: 리버스 프록시 설정 - docker/tomcat/tomcat-users.xml: opsagent 계정 설정 [폐쇄망 패키지] - setup/docker_package.sh: 인터넷 서버에서 모든 이미지를 tar.gz로 패키징 - setup/docker_load.sh: 폐쇄망에서 tar.gz 로드 + 즉시 시작 옵션 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
47 lines
1.4 KiB
YAML
47 lines
1.4 KiB
YAML
# ============================================================
|
|
# GUARDiA ITSM — 운영 환경 오버라이드
|
|
# ============================================================
|
|
# 사용법:
|
|
# docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
|
|
# ============================================================
|
|
|
|
services:
|
|
|
|
guardia:
|
|
image: guardia-itsm:${GUARDIA_VERSION:-latest}
|
|
environment:
|
|
DATABASE_URL: ${DATABASE_URL} # 운영 DB URL 필수
|
|
SECRET_KEY: ${SECRET_KEY} # 운영 시크릿 키 필수
|
|
ports:
|
|
- "127.0.0.1:8001:8001" # localhost만 — Nginx를 통해서만 외부 접근
|
|
volumes:
|
|
- /data/guardia/uploads:/app/uploads # 호스트 경로 직접 마운트
|
|
- /data/guardia/logs:/app/logs
|
|
deploy:
|
|
replicas: 1
|
|
restart_policy:
|
|
condition: on-failure
|
|
max_attempts: 3
|
|
resources:
|
|
limits:
|
|
cpus: "2.0"
|
|
memory: 2G
|
|
|
|
postgres:
|
|
ports: [] # 운영에서는 외부 노출 금지
|
|
environment:
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
|
|
redis:
|
|
ports: [] # 운영에서는 외부 노출 금지
|
|
|
|
ollama:
|
|
ports:
|
|
- "127.0.0.1:11434:11434" # localhost만 노출
|
|
volumes:
|
|
- ${OLLAMA_MODELS_PATH:-/data/ollama}:/root/.ollama
|
|
|
|
tomcat:
|
|
ports:
|
|
- "127.0.0.1:8080:8080" # localhost만
|