README.md
Rendering markdown...
version: '3.8'
services:
# 메인 CTF 웹 서버
docx-ssrf-web:
build:
context: .
dockerfile: Dockerfile
container_name: docx-ssrf-challenge
ports:
- "13687:8080"
environment:
- FLAG=CTF{flag_flag}
- ADMIN_TOKEN=60e27a00dc01ca8e39c21cc3989dd525e24371b0bd238fe506e789e8572a69ae
- PYTHONUNBUFFERED=1
volumes:
- ./uploads:/app/uploads
- ./logs:/app/logs
restart: unless-stopped
networks:
- ctf-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# 내부 Admin 서비스 (포트 3003)
internal-admin:
build:
context: .
dockerfile: Dockerfile.admin
container_name: internal-admin-service
expose:
- "3003"
environment:
- FLAG=CTF{flag_admin}
- ADMIN_TOKEN=60e27a00dc01ca8e39c21cc3989dd525e24371b0bd238fe506e789e8572a69ae
networks:
- ctf-network
restart: unless-stopped
# 내부 Database 서비스 (포트 3001)
internal-db:
build:
context: .
dockerfile: Dockerfile.internal
container_name: internal-db-service
expose:
- "3001"
environment:
- SERVICE_NAME=Database Service
- SERVICE_PORT=3001
networks:
- ctf-network
restart: unless-stopped
# 내부 Cache 서비스 (포트 3002)
internal-cache:
build:
context: .
dockerfile: Dockerfile.internal
container_name: internal-cache-service
expose:
- "3002"
environment:
- SERVICE_NAME=Cache Service
- SERVICE_PORT=3002
networks:
- ctf-network
restart: unless-stopped
# 내부 Metrics 서비스 (포트 3004)
internal-metrics:
build:
context: .
dockerfile: Dockerfile.internal
container_name: internal-metrics-service
expose:
- "3004"
environment:
- SERVICE_NAME=Metrics Service
- SERVICE_PORT=3004
networks:
- ctf-network
restart: unless-stopped
# Redis (선택사항 - 세션 관리용)
redis:
image: redis:7-alpine
container_name: ctf-redis
expose:
- "6379"
networks:
- ctf-network
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- redis-data:/data
# 모니터링 (개발용)
portainer:
image: portainer/portainer-ce:latest
container_name: ctf-portainer
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer-data:/data
restart: unless-stopped
networks:
- ctf-network
profiles:
- dev
volumes:
redis-data:
portainer-data:
networks:
ctf-network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16