57 lines
1.1 KiB
Docker
57 lines
1.1 KiB
Docker
FROM python:3.11-slim-bookworm AS install-dependencies
|
|
|
|
# create and set main app directory
|
|
WORKDIR /app
|
|
|
|
# set virtual env path
|
|
ENV \
|
|
PATH=/venv/bin:$PATH
|
|
|
|
# install sys libs and create virtual env
|
|
RUN \
|
|
apt update && \
|
|
apt install -y gcc libpq-dev python3-dev && \
|
|
python -m venv /venv
|
|
|
|
# copy app files to /app directory
|
|
COPY ./app/requirements.txt .
|
|
|
|
# install dependencies && cleanup
|
|
RUN \
|
|
pip install -r requirements.txt
|
|
|
|
|
|
FROM python:3.11-slim-bookworm
|
|
|
|
# uid to run application
|
|
ARG USER=1000
|
|
# gid to run application
|
|
ARG USER_GROUP=1000
|
|
|
|
# set virtual env path
|
|
ENV \
|
|
PATH=/venv/bin:$PATH
|
|
|
|
# does nothing, for documentation only
|
|
EXPOSE 3000
|
|
|
|
# create and set main app directory
|
|
WORKDIR /app
|
|
|
|
COPY --from=install-dependencies /venv /venv
|
|
|
|
# copy app files to /app directory
|
|
COPY ./app .
|
|
|
|
# set permissions to log directory
|
|
RUN chown -R ${USER}:${USER_GROUP} /app/log
|
|
|
|
# set user to run application
|
|
USER ${USER}:${USER_GROUP}
|
|
|
|
# start shell script when container starts
|
|
ENTRYPOINT ["/app/run.sh"]
|
|
|
|
# no additional parameters to run.sh script
|
|
CMD []
|