Fix: Remove .env bind mount to prevent directory mount issue, use env var instead
This commit is contained in:
@@ -30,10 +30,10 @@ services:
|
|||||||
# Logs persistence
|
# Logs persistence
|
||||||
- oltalama-logs:/app/backend/logs
|
- oltalama-logs:/app/backend/logs
|
||||||
# .env file (optional bind mount - host'tan container'a)
|
# .env file (optional bind mount - host'tan container'a)
|
||||||
# Eğer host'ta .env yoksa, entrypoint script container içinde oluşturur
|
|
||||||
# NOT: Host'ta .env dosyası yoksa, Docker onu dizin olarak oluşturabilir
|
# NOT: Host'ta .env dosyası yoksa, Docker onu dizin olarak oluşturabilir
|
||||||
# Entrypoint script bunu otomatik düzeltir
|
# Bu durumda SESSION_SECRET sadece environment variable olarak kullanılır
|
||||||
- ./backend/.env:/app/backend/.env:rw
|
# Alternatif: SESSION_SECRET'ı doğrudan environment variable olarak geçin
|
||||||
|
# - ./backend/.env:/app/backend/.env:rw
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"]
|
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
|
|||||||
@@ -30,21 +30,14 @@ if [ -z "$SESSION_SECRET" ] || [ "$SESSION_SECRET" = "change-this-to-a-very-stro
|
|||||||
# .env dosyası yolu
|
# .env dosyası yolu
|
||||||
ENV_FILE="/app/backend/.env"
|
ENV_FILE="/app/backend/.env"
|
||||||
|
|
||||||
# Eğer .env bir dizin ise (bind mount sorunu), sil ve dosya olarak oluştur
|
# Eğer .env bir dizin ise (bind mount sorunu), bind mount'u atla
|
||||||
|
# Sadece environment variable olarak kullan
|
||||||
if [ -d "$ENV_FILE" ]; then
|
if [ -d "$ENV_FILE" ]; then
|
||||||
echo "⚠️ .env bir dizin olarak tespit edildi, düzeltiliyor..."
|
echo "⚠️ .env bir dizin olarak tespit edildi (bind mount sorunu)"
|
||||||
rm -rf "$ENV_FILE"
|
echo "⚠️ SESSION_SECRET sadece environment variable olarak kullanılacak"
|
||||||
fi
|
|
||||||
|
|
||||||
# .env dizinini oluştur (yoksa)
|
|
||||||
mkdir -p "$(dirname "$ENV_FILE")"
|
|
||||||
|
|
||||||
# Session secret'ı .env dosyasına kaydet (persist)
|
|
||||||
if [ ! -f "$ENV_FILE" ]; then
|
|
||||||
echo "SESSION_SECRET=$SESSION_SECRET" > "$ENV_FILE"
|
|
||||||
echo "✅ Yeni SESSION_SECRET oluşturuldu ve .env dosyasına kaydedildi"
|
|
||||||
echo "📝 SESSION_SECRET: ${SESSION_SECRET:0:20}... (ilk 20 karakter)"
|
echo "📝 SESSION_SECRET: ${SESSION_SECRET:0:20}... (ilk 20 karakter)"
|
||||||
else
|
echo "💡 İpucu: Host'ta .env dosyası oluşturun veya docker-compose.yml'de SESSION_SECRET environment variable'ı kullanın"
|
||||||
|
elif [ -f "$ENV_FILE" ]; then
|
||||||
# Mevcut .env dosyasını güncelle
|
# Mevcut .env dosyasını güncelle
|
||||||
if grep -q "^SESSION_SECRET=" "$ENV_FILE"; then
|
if grep -q "^SESSION_SECRET=" "$ENV_FILE"; then
|
||||||
sed -i "s|^SESSION_SECRET=.*|SESSION_SECRET=$SESSION_SECRET|" "$ENV_FILE"
|
sed -i "s|^SESSION_SECRET=.*|SESSION_SECRET=$SESSION_SECRET|" "$ENV_FILE"
|
||||||
@@ -52,6 +45,13 @@ if [ -z "$SESSION_SECRET" ] || [ "$SESSION_SECRET" = "change-this-to-a-very-stro
|
|||||||
echo "SESSION_SECRET=$SESSION_SECRET" >> "$ENV_FILE"
|
echo "SESSION_SECRET=$SESSION_SECRET" >> "$ENV_FILE"
|
||||||
fi
|
fi
|
||||||
echo "✅ SESSION_SECRET güncellendi ve .env dosyasına kaydedildi"
|
echo "✅ SESSION_SECRET güncellendi ve .env dosyasına kaydedildi"
|
||||||
|
echo "📝 SESSION_SECRET: ${SESSION_SECRET:0:20}... (ilk 20 karakter)"
|
||||||
|
else
|
||||||
|
# .env dosyası yok, oluştur
|
||||||
|
mkdir -p "$(dirname "$ENV_FILE")"
|
||||||
|
echo "SESSION_SECRET=$SESSION_SECRET" > "$ENV_FILE"
|
||||||
|
echo "✅ Yeni SESSION_SECRET oluşturuldu ve .env dosyasına kaydedildi"
|
||||||
|
echo "📝 SESSION_SECRET: ${SESSION_SECRET:0:20}... (ilk 20 karakter)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user