Files
plm-backend-service/docker-compose.yml
admin 0efeaff88e feat: PLM backend services - auth, user, project, config services
Sprint 0 backend development complete:
- auth-service: JWT authentication, login/logout, token refresh
- user-service: User CRUD, profile management, RBAC
- project-service: Project lifecycle, member management
- config-service: System configuration, audit logging

Technical stack:
- FastAPI async framework
- SQLAlchemy 2.0 async ORM
- JWT authentication with python-jose
- bcrypt password hashing
- Pydantic v2 validation

API endpoints: 31 total
Code lines: 3,551
2026-03-31 00:08:52 +08:00

69 lines
1.4 KiB
YAML

# PLM System Docker Compose Configuration
# Domain: aifly.ren
# Path: ~/plm-system/
version: '3.8'
services:
# PostgreSQL 14 Database
postgres:
image: postgres:14-alpine
container_name: plm-postgres
restart: unless-stopped
environment:
POSTGRES_USER: plm_admin
POSTGRES_PASSWORD: plm_secure_password_2024
POSTGRES_DB: plm_database
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- ./postgresql/data:/var/lib/postgresql/data
ports:
- "5432:5432"
networks:
- plm-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U plm_admin -d plm_database"]
interval: 10s
timeout: 5s
retries: 5
# Redis Cache
redis:
image: redis:7-alpine
container_name: plm-redis
restart: unless-stopped
volumes:
- ./redis/data:/data
ports:
- "6379:6379"
networks:
- plm-network
command: redis-server --appendonly yes
# Nginx Reverse Proxy
nginx:
image: nginx:alpine
container_name: plm-nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/conf.d:/etc/nginx/conf.d:ro
- ./nginx/ssl:/etc/nginx/ssl:ro
- ./nginx/html:/usr/share/nginx/html:ro
networks:
- plm-network
depends_on:
- postgres
- redis
networks:
plm-network:
driver: bridge
volumes:
postgres_data:
redis_data: