Skip to content

Multiple deployment issues due to readonly tmp #371

@Wqrld

Description

@Wqrld

Bug Report

Problematic behavior
Meet (backend and frontend) is not able to be deployed in a fresh demo setup because of the readonly root filesystem.

Expected behavior/code
Demo deployment should work out of the box

Steps to Reproduce

  • Fresh setup using the demo environment

Environment

  • Product version: Git main branch, 11 Jan
  • Platform: Barebones K8s

Possible Solution
Add something along the lines of

          volumeMounts:
            - name: empty-dir
              mountPath: /tmp
              subPath: tmp-dir

      volumes:
        - name: empty-dir
          emptyDir: {}

Additional context/Screenshots

backend:

┌───────────────────────────────────────────────────────────────────────────────────────────── Logs(meet/meet-backend-5d778659b5-9w9tk:meet)[tail] ──────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                       Autoscroll:On      FullScreen:Off     Timestamps:Off     Wrap:Off                                                                                        │
│ 🐳(entrypoint) creating user running in the container...                                                                                                                                                                                       │
│ 🐳(entrypoint) running your command: gunicorn -c /usr/local/etc/gunicorn/meet.py meet.wsgi:application                                                                                                                                         │
│ [2026-01-11 16:13:15 +0000] [1] [INFO] Starting gunicorn 23.0.0                                                                                                                                                                                │
│ [2026-01-11 16:13:15 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1)                                                                                                                                                                   │
│ [2026-01-11 16:13:15 +0000] [1] [INFO] Using worker: sync                                                                                                                                                                                      │
│ [2026-01-11 16:13:15 +0000] [1] [ERROR] Unhandled exception in main loop                                                                                                                                                                       │
│ Traceback (most recent call last):                                                                                                                                                                                                             │
│   File "/usr/local/lib/python3.13/site-packages/gunicorn/arbiter.py", line 201, in run                                                                                                                                                         │
│     self.manage_workers()                                                                                                                                                                                                                      │
│     ~~~~~~~~~~~~~~~~~~~^^                                                                                                                                                                                                                      │
│   File "/usr/local/lib/python3.13/site-packages/gunicorn/arbiter.py", line 570, in manage_workers                                                                                                                                              │
│     self.spawn_workers()                                                                                                                                                                                                                       │
│     ~~~~~~~~~~~~~~~~~~^^                                                                                                                                                                                                                       │
│   File "/usr/local/lib/python3.13/site-packages/gunicorn/arbiter.py", line 641, in spawn_workers                                                                                                                                               │
│     self.spawn_worker()                                                                                                                                                                                                                        │
│     ~~~~~~~~~~~~~~~~~^^                                                                                                                                                                                                                        │
│   File "/usr/local/lib/python3.13/site-packages/gunicorn/arbiter.py", line 588, in spawn_worker                                                                                                                                                │
│     worker = self.worker_class(self.worker_age, self.pid, self.LISTENERS,                                                                                                                                                                      │
│                                self.app, self.timeout / 2.0,                                                                                                                                                                                   │
│                                self.cfg, self.log)                                                                                                                                                                                             │
│   File "/usr/local/lib/python3.13/site-packages/gunicorn/workers/base.py", line 65, in __init__                                                                                                                                                │
│     self.tmp = WorkerTmp(cfg)                                                                                                                                                                                                                  │
│                ~~~~~~~~~^^^^^                                                                                                                                                                                                                  │
│   File "/usr/local/lib/python3.13/site-packages/gunicorn/workers/workertmp.py", line 23, in __init__                                                                                                                                           │
│     fd, name = tempfile.mkstemp(prefix="wgunicorn-", dir=fdir)                                                                                                                                                                                 │
│                ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                 │
│   File "/usr/local/lib/python3.13/tempfile.py", line 350, in mkstemp                                                                                                                                                                           │
│     prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)                                                                                                                                                                   │
│                                        ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                   │
│   File "/usr/local/lib/python3.13/tempfile.py", line 126, in _sanitize_params                                                                                                                                                                  │
│     dir = gettempdir()                                                                                                                                                                                                                         │
│   File "/usr/local/lib/python3.13/tempfile.py", line 315, in gettempdir                                                                                                                                                                        │
│     return _os.fsdecode(_gettempdir())                                                                                                                                                                                                         │
│                         ~~~~~~~~~~~^^                                                                                                                                                                                                          │
│   File "/usr/local/lib/python3.13/tempfile.py", line 308, in _gettempdir                                                                                                                                                                       │
│     tempdir = _get_default_tempdir()                                                                                                                                                                                                           │
│   File "/usr/local/lib/python3.13/tempfile.py", line 223, in _get_default_tempdir                                                                                                                                                              │
│     raise FileNotFoundError(_errno.ENOENT,                                                                                                                                                                                                     │
│                             "No usable temporary directory found in %s" %                                                                                                                                                                      │
│                             dirlist)                                                                                                                                                                                                           │
│ FileNotFoundError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/app'] 

frontend:

│ 🐳(entrypoint) creating user running in the container...                                                                                                                                                                                       │
│ 🐳(entrypoint) running your command: nginx -g daemon off;                                                                                                                                                                                      │
│ 2026/01/11 16:26:02 [emerg] 1#1: mkdir() "/tmp/proxy_temp" failed (30: Read-only file system)                                                                                                                                                  │
│ nginx: [emerg] mkdir() "/tmp/proxy_temp" failed (30: Read-only file system)                                                                                                                                                                    │
│ stream closed: EOF for meet/meet-frontend-65745b5b56-6zbvz (meet)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions