Files
towercontrol/docker-compose.yml
Julien Froidefond 76394375ea chore(docker): update Docker configuration for database initialization
- Changed exposed port from 3006 to 3007 in docker-compose.yml.
- Updated Dockerfile to copy init-db.js script and modified CMD to use it for database initialization instead of Prisma migrations.
2025-10-30 11:22:40 +01:00

64 lines
2.0 KiB
YAML

services:
towercontrol:
build:
context: .
dockerfile: Dockerfile
target: runner
ports:
- '3007:3000'
environment:
NODE_ENV: production
DATABASE_URL: 'file:../data/dev.db' # Prisma
BACKUP_DATABASE_PATH: './data/dev.db' # Base de données à sauvegarder
BACKUP_STORAGE_PATH: './data/backups' # Dossier des sauvegardes
TZ: Europe/Paris
# NextAuth.js
NEXTAUTH_SECRET: 'TbwIWAmQgBcOlg7jRZrhkeEUDTpSr8Cj/Cc7W58fAyw='
NEXTAUTH_URL: 'http://localhost:3006'
volumes:
- ./data:/app/data # Dossier local data/ vers /app/data
restart: unless-stopped
healthcheck:
test: ['CMD', 'wget', '-qO-', 'http://localhost:3000/api/health']
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
towercontrol-dev:
build:
context: .
dockerfile: Dockerfile
target: base
ports:
- '3005:3000'
environment:
NODE_ENV: development
DATABASE_URL: 'file:../data/dev.db' # Prisma
BACKUP_DATABASE_PATH: './data/dev.db' # Base de données à sauvegarder
BACKUP_STORAGE_PATH: './data/backups' # Dossier des sauvegardes
TZ: Europe/Paris
# NextAuth.js
NEXTAUTH_SECRET: 'TbwIWAmQgBcOlg7jRZrhkeEUDTpSr8Cj/Cc7W58fAyw='
NEXTAUTH_URL: 'http://localhost:3005'
volumes:
- .:/app # code en live
- /app/node_modules # vol anonyme pour ne pas écraser ceux du conteneur
- /app/.next
- ./data:/app/data # Dossier local data/ vers /app/data
command: >
sh -c "pnpm install &&
pnpm prisma generate &&
node scripts/init-db.js &&
pnpm run dev"
profiles:
- dev
# 📁 Structure des données :
# ./data/ -> /app/data (bind mount)
# ├── prod.db -> Base de données production
# ├── dev.db -> Base de données développement
# └── backups/ -> Sauvegardes automatiques
#
# 🔧 Configuration via .env.docker
# 📚 Documentation : ./data/README.md