42 lines
809 B
Docker
42 lines
809 B
Docker
FROM python:3.11-slim
|
|
|
|
# Set up user
|
|
ARG UID
|
|
ARG GID
|
|
RUN useradd --system --uid ${UID} --gid ${GID} --create-home --shell /bin/bash groceries
|
|
RUN usermod -aG ${GID} groceries
|
|
|
|
ARG DEBIAN_FRONTEND="noninteractive"
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
ENV PYTHONUNBUFFERED=1
|
|
ENV DJANGO_RELEASE=1
|
|
|
|
# Set up directories
|
|
ENV HOME=/home/groceries
|
|
ENV APP_DIR=${HOME}/web
|
|
ENV DATA_DIR=${HOME}/data
|
|
|
|
RUN mkdir -p ${APP_DIR}
|
|
RUN mkdir -p ${DATA_DIR}
|
|
|
|
WORKDIR ${APP_DIR}
|
|
|
|
RUN apt-get update
|
|
RUN apt-get install --yes --no-install-recommends wget
|
|
|
|
# Build pip requirements
|
|
ADD ./requirements.txt .
|
|
RUN pip install --upgrade pip
|
|
RUN pip install -r requirements.txt
|
|
|
|
# Copy files
|
|
ADD . ${APP_DIR}
|
|
RUN chown -R ${UID}:${GID} ${HOME}
|
|
RUN chmod +x entrypoint.sh
|
|
|
|
USER groceries
|
|
|
|
ENTRYPOINT [ "/home/groceries/web/entrypoint.sh" ]
|
|
|
|
|