Skip to content

[Bug] [Errno 13] Permission denied on /run/s6-rc in Docker / Unraid environments #1028

Description

@TedetBill

Contexte

  • Environnement : Home Assistant Container (Docker) sur Unraid
  • Intégration : Hilo (dvd-dev/hilo)

Description du problème

Lors du flux d'authentification ou de la configuration initiale, l'intégration échoue à s'initialiser avec une erreur de permission :
Failed to set up: [Errno 13] Permission denied: '/run/s6-rc:s6-rc-init:.../servicedirs/svc-homeassistant/tmp...tmp'

Cause racine

Dans les environnements de conteneurs Docker gérés par s6-overlay (comme Unraid ou les installations HA Container standard), le module tempfile de Python hérite du répertoire de travail initial (/run/s6-rc:...), qui est monté en lecture seule. Lorsque des fichiers ou jetons temporaires sont créés sans chemin absolu explicite, Python tente d'écrire directement dans /run/..., déclenchant l'erreur Errno 13 Permission denied.

Contournement / Correctif

Forcer le répertoire temporaire de Python à pointer vers /config (qui est un volume accessible en lecture/écriture) dans custom_components/hilo/__init__.py et custom_components/hilo/config_flow.py.

Remarque : Le bloc de code doit obligatoirement être placé immédiatement après from __future__ import annotations afin de respecter la syntaxe d'importation Python (et éviter une SyntaxError).

from __future__ import annotations

# Correctif pour les permissions du dossier /run en lecture seule (Docker/Unraid)
import os
import tempfile

tempfile.tempdir = '/config'
try:
    os.chdir('/config')
except Exception:
    pass

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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