@@ -55,7 +55,8 @@ services:
5555 redis :
5656 condition : service_healthy
5757 command : >
58- sh -lc "cd /app/app &&
58+ sh -lc "mkdir -p /app/.cache/numba /app/.cache/xdg /app/.cache/matplotlib &&
59+ cd /app/app &&
5960 python manage.py migrate --noinput &&
6061 python manage.py collectstatic --noinput &&
6162 exec hypercorn app.asgi:application -b 0.0.0.0:8000 -w 2 --keep-alive 15"
@@ -68,15 +69,24 @@ services:
6869 - ALL
6970 read_only : true
7071 tmpfs :
71- - /tmp:rw,noexec,nosuid,size=128m
72+ - /tmp:rw,noexec,nosuid,size=128m,uid=998,gid=998,mode=1777
73+ - /app/.cache:rw,nosuid,size=256m,uid=998,gid=998,mode=700
7274 volumes :
7375 - django_static_prod:/app/staticfiles
7476 - django_media_prod:/app/media
77+ environment :
78+ HOME : /app
79+ XDG_CACHE_HOME : /app/.cache/xdg
80+ NUMBA_CACHE_DIR : /app/.cache/numba
81+ MPLCONFIGDIR : /app/.cache/matplotlib
7582
7683 celery_worker :
7784 image : deepmtg-app:prod
7885 env_file : .env.prod
79- command : " sh -lc 'cd /app/app && celery -A app worker -Q default --loglevel=info --concurrency=8 -n worker_default@%h'"
86+ command : >
87+ sh -lc "mkdir -p /app/.cache/numba /app/.cache/xdg /app/.cache/matplotlib &&
88+ cd /app/app &&
89+ exec celery -A app worker -Q default --loglevel=info --concurrency=8 -n worker_default@%h"
8090 restart : unless-stopped
8191 depends_on :
8292 db :
@@ -92,12 +102,21 @@ services:
92102 - ALL
93103 read_only : true
94104 tmpfs :
95- - /tmp:rw,noexec,nosuid,size=128m
105+ - /tmp:rw,noexec,nosuid,size=128m,uid=998,gid=998,mode=1777
106+ - /app/.cache:rw,nosuid,size=256m,uid=998,gid=998,mode=700
107+ environment :
108+ HOME : /app
109+ XDG_CACHE_HOME : /app/.cache/xdg
110+ NUMBA_CACHE_DIR : /app/.cache/numba
111+ MPLCONFIGDIR : /app/.cache/matplotlib
96112
97113 celery_llm_worker :
98114 image : deepmtg-app:prod
99115 env_file : .env.prod
100- command : " sh -lc 'cd /app/app && celery -A app worker -Q llm --loglevel=info --concurrency=1 --pool=prefork --max-tasks-per-child=50 -n worker_llm@%h'"
116+ command : >
117+ sh -lc "mkdir -p /app/.cache/numba /app/.cache/xdg /app/.cache/matplotlib &&
118+ cd /app/app &&
119+ exec celery -A app worker -Q llm --loglevel=info --concurrency=1 --pool=prefork --max-tasks-per-child=50 -n worker_llm@%h"
101120 restart : unless-stopped
102121 depends_on :
103122 db :
@@ -113,12 +132,21 @@ services:
113132 - ALL
114133 read_only : true
115134 tmpfs :
116- - /tmp:rw,noexec,nosuid,size=128m
135+ - /tmp:rw,noexec,nosuid,size=128m,uid=998,gid=998,mode=1777
136+ - /app/.cache:rw,nosuid,size=256m,uid=998,gid=998,mode=700
137+ environment :
138+ HOME : /app
139+ XDG_CACHE_HOME : /app/.cache/xdg
140+ NUMBA_CACHE_DIR : /app/.cache/numba
141+ MPLCONFIGDIR : /app/.cache/matplotlib
117142
118143 celery_beat :
119144 image : deepmtg-app:prod
120145 env_file : .env.prod
121- command : " sh -lc 'cd /app/app && celery -A app beat --loglevel=info --schedule /tmp/celerybeat-schedule'"
146+ command : >
147+ sh -lc "mkdir -p /app/.cache/numba /app/.cache/xdg /app/.cache/matplotlib &&
148+ cd /app/app &&
149+ exec celery -A app beat --loglevel=info --schedule /tmp/celerybeat-schedule"
122150 restart : unless-stopped
123151 depends_on :
124152 db :
@@ -134,7 +162,13 @@ services:
134162 - ALL
135163 read_only : true
136164 tmpfs :
137- - /tmp:rw,noexec,nosuid,size=128m
165+ - /tmp:rw,noexec,nosuid,size=128m,uid=998,gid=998,mode=1777
166+ - /app/.cache:rw,nosuid,size=128m,uid=998,gid=998,mode=700
167+ environment :
168+ HOME : /app
169+ XDG_CACHE_HOME : /app/.cache/xdg
170+ NUMBA_CACHE_DIR : /app/.cache/numba
171+ MPLCONFIGDIR : /app/.cache/matplotlib
138172
139173 frontend :
140174 build :
0 commit comments