docs: Fix .env-Deployment-Pitfall - restart vs up -d

docker compose restart liest .env NICHT neu ein, weil die
environment:-Section in docker-compose.yml ${VAR:-default} Syntax
nutzt, die nur bei docker compose up ausgewertet wird.

Korrigiert in copilot-instructions.md und ZERO_DOWNTIME_CHANGES.md.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
root
2026-01-30 17:25:49 +01:00
parent c80a62ed26
commit fdab446aa4
2 changed files with 20 additions and 8 deletions

View File

@@ -2001,11 +2001,19 @@ docker logs trading-bot-v4 | grep "Server starting" | head -1
|------------|--------|----------|------|
| Documentation (`.md`) | **NONE** | 0s | Just commit and push |
| Workflows (`.json`, `.pinescript`) | **NONE** | 0s | Import manually to TradingView/n8n |
| ENV variables (`.env`) | **RESTART** | 5-10s | `docker compose restart trading-bot` |
| ENV variables (`.env`) | **RECREATE** | 5-10s | `docker compose up -d trading-bot` (NOT `restart` — see below) |
| Database schema | **MIGRATE + RESTART** | 10-15s | `prisma migrate + restart` |
| Code (`.ts`, `.tsx`, `.js`) | **REBUILD** | 40-70s | TypeScript must recompile |
| Dependencies (`package.json`) | **REBUILD** | 40-70s | npm install required |
**⚠️ PITFALL: `docker compose restart` liest .env NICHT neu ein (Bug #90, Jan 30 2026)**
- `docker-compose.yml` nutzt `environment:` mit `${VAR:-default}` Syntax
- Diese Variablen werden nur bei `docker compose up` ausgewertet, NICHT bei `restart`
- `restart` startet den Container mit den **alten** Environment-Variablen neu
- **Richtig:** `docker compose up -d trading-bot` → recreated den Container mit neuen Werten
- **Falsch:** `docker compose restart trading-bot` → alte .env-Werte bleiben aktiv
- **Verifizierung:** `docker exec trading-bot-v4 env | grep VARIABLE` zeigt die tatsächlich aktiven Werte
**Smart Batching Strategy:**
- **DON'T:** Rebuild after every single code change (6× rebuilds = 6 minutes downtime)
- **DO:** Batch related changes together (6 fixes → 1 rebuild = 50 seconds total)