non-root docker: create bugsink-owned /data dir

without it, won't even build (/data creation happened during build
b/c migrations triggered it when the settings were loaded)

See #176
This commit is contained in:
Klaas van Schelven
2025-07-30 17:06:36 +02:00
parent 7905542474
commit 53753bc904
3 changed files with 10 additions and 6 deletions

View File

@@ -46,7 +46,11 @@ COPY bugsink/conf_templates/docker.py.template bugsink_conf.py
# Git is needed by setuptools_scm to get the version from the git tag
RUN apt update && apt install -y git
RUN pip install -e .
RUN groupadd -r bugsink && useradd -r -g bugsink bugsink
RUN groupadd -r bugsink \
&& useradd -r -g bugsink bugsink \
&& mkdir -p /data \
&& chown -R bugsink:bugsink /data
USER bugsink

View File

@@ -73,7 +73,11 @@ RUN --mount=type=cache,target=/var/cache/buildkit/pip \
COPY bugsink/conf_templates/docker.py.template bugsink_conf.py
COPY gunicorn.docker.conf.py /app/
RUN groupadd -r bugsink && useradd -r -g bugsink bugsink
RUN groupadd -r bugsink \
&& useradd -r -g bugsink bugsink \
&& mkdir -p /data \
&& chown -R bugsink:bugsink /data
USER bugsink
RUN ["bugsink-manage", "migrate", "snappea", "--database=snappea"]

View File

@@ -103,10 +103,6 @@ else:
# which allows for throwaway setups (no volume mounted) to work out of the box.
DATABASES['default']['NAME'] = os.getenv("DATABASE_PATH", '/data/db.sqlite3')
database_path = os.path.dirname(DATABASES['default']['NAME'])
if not os.path.exists(database_path):
print(f"WARNING: {database_path} dir does not exist; creating it.")
print("WARNING: data will be lost when the container is removed.")
os.makedirs(database_path)
if os.getenv("EMAIL_HOST"):