Assist_Design/docker/dev/docker-compose.yml

105 lines
2.3 KiB
YAML
Raw Normal View History

2025-08-21 15:24:40 +09:00
# 🔧 Development Docker Compose
# Services only - apps run locally via 'pnpm dev'
version: '3.8'
services:
# PostgreSQL Development Database
postgres:
image: postgres:17-alpine
container_name: portal-dev-postgres
ports:
- "5432:5432"
environment:
POSTGRES_DB: portal_dev
POSTGRES_USER: dev
POSTGRES_PASSWORD: dev
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C"
volumes:
- postgres_dev_data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U dev -d portal_dev"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
networks:
- dev-network
# Redis Development Cache
redis:
image: redis:8-alpine
container_name: portal-dev-redis
ports:
- "6379:6379"
volumes:
- redis_dev_data:/data
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 5
networks:
- dev-network
command: >
redis-server
--appendonly yes
--maxmemory 128mb
--maxmemory-policy noeviction
# Database Administration Tool (Optional)
adminer:
image: adminer:4-standalone
container_name: portal-dev-adminer
ports:
- "8080:8080"
environment:
ADMINER_DEFAULT_SERVER: postgres
ADMINER_DESIGN: pepa-linha-dark
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
networks:
- dev-network
profiles:
- "tools"
# Redis Management Tool (Optional)
redis-commander:
image: rediscommander/redis-commander:latest
container_name: portal-dev-redis-commander
ports:
- "8081:8081"
environment:
REDIS_HOSTS: "dev:redis:6379"
HTTP_USER: admin
HTTP_PASSWORD: dev
restart: unless-stopped
depends_on:
redis:
condition: service_healthy
networks:
- dev-network
profiles:
- "tools"
volumes:
postgres_dev_data:
driver: local
labels:
- "dev.portal.volume=database"
redis_dev_data:
driver: local
labels:
- "dev.portal.volume=cache"
networks:
dev-network:
driver: bridge
name: portal-dev-network
labels:
- "dev.portal.network=main"