Multistage build

This commit is contained in:
Eden Kirin
2024-01-11 13:20:06 +01:00
parent d96368feb6
commit 176d22bbe4
9 changed files with 396 additions and 60 deletions

View File

@ -0,0 +1,51 @@
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
# 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 .
RUN ls -alF /
RUN ls -alF /venv
RUN ls -alF /venv/bin
RUN ls -alF /app
# start shell script when container starts
ENTRYPOINT ["/app/run.sh"]
# no additional parameters to run.sh script
CMD []