fix: Correct media permissions via docker exec after deploy

- Remove 2>/dev/null || true from chown/chmod in entrypoint.sh
- Add write test for media directory in entrypoint.sh
- Add Step 8 in deploy script: fix permissions via docker exec
- This ensures media files remain accessible after auto-deploy

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-18 00:09:50 +03:00
parent c77fcaf669
commit 61848774d2
2 changed files with 31 additions and 9 deletions

View File

@@ -37,6 +37,9 @@ cp /Volume1/DockerAppsData/git/octopus/docker/docker-compose.yml "$DOCKER_COMPOS
echo "Step 5: Setting permissions..." >> "$LOG_FILE"
chown -R 1000:1000 "$APP_ROOT" >> "$LOG_FILE" 2>&1
chmod +x "$APP_ROOT/docker/entrypoint.sh" >> "$LOG_FILE" 2>&1
# Гарантируем существование media папки с правильными правами
mkdir -p /Volume1/DockerAppsData/mixapp/media >> "$LOG_FILE" 2>&1
chown -R 1000:1000 /Volume1/DockerAppsData/mixapp/media >> "$LOG_FILE" 2>&1
chown -R 1000:1000 /Volume1/DockerAppsData/mixapp/static >> "$LOG_FILE" 2>&1
@@ -57,8 +60,18 @@ echo "Step 7: Restarting ALL containers..." >> "$LOG_FILE"
docker-compose down >> "$LOG_FILE" 2>&1
docker-compose up -d >> "$LOG_FILE" 2>&1
# 8. Ждём запуска и исправляем права через docker exec (внутри контейнера от root)
echo "Step 8: Waiting for containers and fixing permissions..." >> "$LOG_FILE"
sleep 10 # Даём контейнерам время для запуска entrypoint.sh
# Исправляем права внутри контейнера (entrypoint.sh запускается от root)
docker exec mix_web chown -R appuser:appuser /app/myproject/media >> "$LOG_FILE" 2>&1
docker exec mix_web chown -R appuser:appuser /app/myproject/staticfiles >> "$LOG_FILE" 2>&1
docker exec mix_web chmod -R 777 /app/myproject/media >> "$LOG_FILE" 2>&1
echo "Permissions fixed inside container" >> "$LOG_FILE"
# Проверка
echo "Step 8: Check status..." >> "$LOG_FILE"
echo "Step 9: Check status..." >> "$LOG_FILE"
docker-compose ps >> "$LOG_FILE" 2>&1
echo "=== Deploy finished at $(date) ===" >> "$LOG_FILE"