Files
works/docker-compose-apisix.yml
Claude f53d55e712 Initial commit: OAuth 2.0 인증 시스템 with APISIX API Gateway
- FastAPI 백엔드 + MongoDB + Redis 구성
- React + Vite + TypeScript + shadcn/ui 프론트엔드
- Apache APISIX API Gateway 통합
- Docker Compose 기반 개발 환경
- 3단계 권한 체계 (System Admin, Group Admin, User)
- 동적 테마 지원
- 환경별 설정 (dev/vei/prod)

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 10:16:41 +09:00

114 lines
2.5 KiB
YAML

version: '3.8'
services:
etcd:
image: bitnami/etcd:3.5
container_name: oauth-etcd
restart: always
volumes:
- etcd_data:/bitnami/etcd
environment:
ALLOW_NONE_AUTHENTICATION: "yes"
ETCD_ADVERTISE_CLIENT_URLS: http://etcd:2379
ETCD_LISTEN_CLIENT_URLS: http://0.0.0.0:2379
ports:
- "2379:2379"
networks:
- oauth-network
apisix:
image: apache/apisix:3.8.0-debian
container_name: oauth-apisix
restart: always
volumes:
- ./apisix/config.yaml:/usr/local/apisix/conf/config.yaml:ro
depends_on:
- etcd
ports:
- "9080:9080" # HTTP
- "9443:9443" # HTTPS
- "9092:9092" # Control API
networks:
- oauth-network
apisix-dashboard:
image: apache/apisix-dashboard:3.0.1-alpine
container_name: oauth-apisix-dashboard
restart: always
volumes:
- ./apisix/apisix-dashboard.yaml:/usr/local/apisix-dashboard/conf/conf.yaml:ro
ports:
- "9000:9000"
depends_on:
- etcd
- apisix
networks:
- oauth-network
mongodb:
image: mongo:7.0
container_name: oauth-mongodb
restart: always
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin123
MONGO_INITDB_DATABASE: oauth_db
volumes:
- mongodb_data:/data/db
- ./oauth/backend/scripts/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
networks:
- oauth-network
redis:
image: redis:7-alpine
container_name: oauth-redis
restart: always
ports:
- "6379:6379"
command: redis-server --appendonly yes
volumes:
- redis_data:/data
networks:
- oauth-network
backend:
build:
context: ./oauth/backend
dockerfile: Dockerfile
container_name: oauth-backend
restart: always
environment:
- MONGODB_URL=mongodb://admin:admin123@mongodb:27017/oauth_db?authSource=admin
- REDIS_URL=redis://redis:6379
- ENVIRONMENT=dev
depends_on:
- mongodb
- redis
volumes:
- ./oauth/backend:/app
- /app/__pycache__
networks:
- oauth-network
command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
frontend:
build:
context: ./oauth/frontend
dockerfile: Dockerfile
container_name: oauth-frontend
restart: always
depends_on:
- backend
networks:
- oauth-network
volumes:
etcd_data:
mongodb_data:
redis_data:
networks:
oauth-network:
driver: bridge