updated docker files
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# build stage
|
||||
FROM python:3.12-slim-bookworm as BUILDER
|
||||
|
||||
# set environment variables
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
PYTHONDONTWRITEBYTECODE=1 \
|
||||
PIP_NO_CACHE_DIR=off \
|
||||
PIP_DISABLE_PIP_VERSION_CHECK=ON \
|
||||
PIP_DEFAULT_TIMEOUT=100 \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
POETRY_HOME=/etc/poetry \
|
||||
POETRY_VERSION=1.7.1 \
|
||||
POETRY_VIRTUALENVS_IN_PROJECT=1 \
|
||||
POETRY_VIRTUALENVS_CREATE=1 \
|
||||
POETRY_NO_INTERACTION=1 \
|
||||
POETRY_CACHE_DIR=/tmp/poetry_cache \
|
||||
APP_HOME=/home/app
|
||||
|
||||
# update system
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
curl \
|
||||
&& apt-get clean
|
||||
|
||||
# install poetry
|
||||
RUN curl -sSL https://install.python-poetry.org | python3 -
|
||||
ENV PATH="${POETRY_HOME}/bin:$PATH"
|
||||
|
||||
# install runtime dependencies
|
||||
WORKDIR ${APP_HOME}
|
||||
COPY ./poetry.lock ./pyproject.toml ./
|
||||
RUN --mount=type=cache,target=${POETRY_CACHE_DIR} poetry install \
|
||||
--with shared,model
|
||||
|
||||
# final stage
|
||||
FROM python:3.12-slim-bookworm
|
||||
|
||||
# copy virtualenv made by poetry
|
||||
ENV APP_HOME=/home/app \
|
||||
VIRTUAL_ENV=/home/app/.venv
|
||||
COPY --from=builder ${VIRTUAL_ENV} ${VIRTUAL_ENV}
|
||||
ENV PATH="${VIRTUAL_ENV}/bin:${PATH}"
|
||||
|
||||
# create home directory and app user
|
||||
RUN mkdir -p /home/app
|
||||
|
||||
# add code while changing ownership
|
||||
WORKDIR $APP_HOME
|
||||
COPY ./shared ./shared
|
||||
COPY ./model/src ./
|
||||
|
||||
ENTRYPOINT [ "python", "main.py" ]
|
||||
Reference in New Issue
Block a user