#!/bin/bash set -e echo "=== Container başlatılıyor ===" # Veritabanı dosyası yolu DB_FILE="/app/db.sqlite3" DB_DIR="/app" echo "Mevcut durumu kontrol ediyorum..." ls -la /app/ || true # Veritabanı dosyası kontrolü ve oluşturma if [ ! -f "$DB_FILE" ]; then echo "SQLite veritabanı bulunamadı, oluşturuluyor..." touch "$DB_FILE" fi # Tüm /app dizinini 1000:1000 kullanıcısına ata echo "Dizin sahipliği ayarlanıyor..." chown -R 1000:1000 /app # Veritabanı dosyası için özel izinler echo "Veritabanı izinleri ayarlanıyor..." chmod 666 "$DB_FILE" # Daha geniş izin chmod 777 "$DB_DIR" # Dizin için tam izin # Gerekli dizinleri oluştur mkdir -p /app/media /app/static /app/logs mkdir -p /tmp/backups chown -R 1000:1000 /app/media /app/static /app/logs /tmp/backups chmod -R 777 /app/media /app/static /app/logs /tmp/backups # /tmp dizinine de tam izin ver chmod 777 /tmp chown 1000:1000 /tmp echo "Final izin kontrolü:" ls -la /app/db.sqlite3 || true ls -ld /app/ || true echo "=== İzinler ayarlandı, appuser olarak geçiliyor ===" # Django migrate çalıştır (root olarak) echo "Django migrate çalıştırılıyor..." cd /app python manage.py migrate --noinput || echo "Migrate hatası, devam ediliyor..." # Veritabanı izinlerini tekrar ayarla chown 1000:1000 "$DB_FILE" chmod 666 "$DB_FILE" echo "=== Uygulama başlatılıyor ===" # appuser olarak uygulamayı başlat exec su-exec 1000:1000 "$@"