-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathDockerfile-dev
More file actions
44 lines (41 loc) · 1.64 KB
/
Dockerfile-dev
File metadata and controls
44 lines (41 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# syntax=docker/dockerfile:1.3
# Setup as root
# ---------- ---------- ---------- ---------- ---------- ---------- ----------
# Install packages, Configure & Clean up
# build from default to include MySQL drivers
FROM python:3.14.2-bookworm AS python-build
RUN apt-get update && \
apt-get -y upgrade 2>&1 && \
apt-get autoremove -y && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/* /var/log/dpkg.log
RUN pip install --upgrade pip setuptools && \
pip install mysqlclient
# use slim to reduce size and unused stuff
FROM python:3.14.2-slim-bookworm
COPY --from=python-build /usr/local/lib/python3.13/site-packages /usr/local/lib/python3.13/site-packages
RUN apt-get update && \
apt-get install -y libmariadb3 && \
apt-get -y upgrade 2>&1 && \
apt-get autoremove -y && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/* /var/log/dpkg.log
# Setup App basic directories
# ---------- ---------- ---------- ---------- ---------- ---------- ----------
ARG USER_NAME
ARG USER_UID
RUN useradd --create-home --user-group --uid ${USER_UID} --shell /bin/bash ${USER_NAME}
RUN mkdir /app && chown ${USER_NAME} -R /app && \
mkdir /data && chown ${USER_NAME} -R /data && \
mkdir /tools && chown ${USER_NAME} -R /tools
# Switch & Setup as non-root user
# ---------- ---------- ---------- ---------- ---------- ---------- ----------
USER ${USER_NAME}
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
ENV PYTHONUNBUFFERED 1
# Setup Django App
# ---------- ---------- ---------- ---------- ---------- ---------- ----------
ENV PATH $PATH:/home/${USER_NAME}/.local/bin
WORKDIR /app
COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt