Skip to content

Commit f1139b5

Browse files
authored
implement appuser for running container as non-root (#462)
* Create non-root user and set permissions in Dockerfile Added non-root user and adjusted permissions for security. * Refactor Dockerfile for non-root user and dependencies Updated Dockerfile to create a non-root user with home directory, install system dependencies including ffmpeg, and set permissions for application directories. * Refactor Dockerfile for improved setup Updated Dockerfile to streamline dependencies and user setup.
1 parent 2286f0f commit f1139b5

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

dockerfile

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
88
&& apt-get clean \
99
&& rm -rf /var/lib/apt/lists/*
1010

11+
RUN groupadd -r appuser && \
12+
useradd -r -g appuser -u 1000 -m -d /home/appuser -s /bin/bash appuser
13+
1114
WORKDIR /app
1215

1316
COPY requirements.txt ./
@@ -16,10 +19,19 @@ RUN pip install --no-cache-dir -r requirements.txt
1619
COPY GUI/requirements.txt ./GUI/requirements.txt
1720
RUN pip install --no-cache-dir -r GUI/requirements.txt
1821

19-
COPY . .
22+
COPY . .
23+
24+
RUN mkdir -p /app/Video /app/logs /app/data \
25+
/home/appuser/.local/bin/binary \
26+
/home/appuser/.config && \
27+
chown -R appuser:appuser /app /home/appuser && \
28+
chmod -R 755 /app /home/appuser
29+
30+
USER appuser
2031

21-
ENV PYTHONPATH="/app:${PYTHONPATH}"
32+
ENV PYTHONPATH="/app: ${PYTHONPATH}" \
33+
HOME=/home/appuser
2234

2335
EXPOSE 8000
2436

25-
CMD ["python", "GUI/manage.py", "runserver", "0.0.0.0:8000"]
37+
CMD ["python", "GUI/manage.py", "runserver", "0.0.0.0:8000"]

0 commit comments

Comments
 (0)