fix: ensure temp files use shared volume with correct permissions
- Modified render_accessible_video.py to explicitly pass TMPDIR to tempfile.TemporaryDirectory() so files are created in shared volume - Updated docker-compose.yml to run containers as root initially, chown /shared-tmp to app:app, then switch to app user for celery - This ensures both worker containers can access the same temp files 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
c3bc0bd523
commit
901083b426
2 changed files with 11 additions and 3 deletions
|
|
@ -91,7 +91,9 @@ async def _async_render_accessible_video(job_id: str, language: str):
|
|||
message=f"Rendering accessible video for {language.upper()}"
|
||||
)
|
||||
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
# Use TMPDIR env var if set (for shared volume between workers)
|
||||
temp_base = os.environ.get('TMPDIR', None)
|
||||
with tempfile.TemporaryDirectory(dir=temp_base) as temp_dir:
|
||||
# 1. Download source video from GCS
|
||||
source_video_gcs = job_doc["source"]["gcs_uri"]
|
||||
source_blob_path = source_video_gcs.replace(f"gs://{settings.gcs_bucket}/", "")
|
||||
|
|
|
|||
|
|
@ -151,7 +151,10 @@ services:
|
|||
target: worker
|
||||
container_name: accessible-video-worker
|
||||
restart: unless-stopped
|
||||
command: ["celery", "-A", "celery_worker", "worker", "-Q", "default,ingest,notify,render", "--loglevel=info", "--concurrency=4"]
|
||||
user: root
|
||||
command: >
|
||||
sh -c "chown -R app:app /shared-tmp &&
|
||||
su app -c 'celery -A celery_worker worker -Q default,ingest,notify,render --loglevel=info --concurrency=4'"
|
||||
depends_on:
|
||||
mongodb:
|
||||
condition: service_healthy
|
||||
|
|
@ -229,7 +232,10 @@ services:
|
|||
target: worker
|
||||
container_name: accessible-video-ffmpeg-worker
|
||||
restart: unless-stopped
|
||||
command: ["celery", "-A", "celery_worker", "worker", "-Q", "ffmpeg", "--loglevel=info", "--concurrency=1"]
|
||||
user: root
|
||||
command: >
|
||||
sh -c "chown -R app:app /shared-tmp 2>/dev/null || true &&
|
||||
su app -c 'celery -A celery_worker worker -Q ffmpeg --loglevel=info --concurrency=1'"
|
||||
depends_on:
|
||||
mongodb:
|
||||
condition: service_healthy
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue