Create: dockerized app
This commit is contained in:
45
Dockerfile
Normal file
45
Dockerfile
Normal file
@@ -0,0 +1,45 @@
|
||||
FROM python:3.11 as python-base
|
||||
|
||||
# https://python-poetry.org/docs#ci-recommendations
|
||||
ENV POETRY_VERSION=1.4.2
|
||||
ENV POETRY_HOME=/opt/poetry
|
||||
ENV POETRY_VENV=/opt/poetry-venv
|
||||
|
||||
# Tell Poetry where to place its cache and virtual environment
|
||||
ENV POETRY_CACHE_DIR=/opt/.cache
|
||||
|
||||
# Create stage for Poetry installation
|
||||
FROM python-base as poetry-base
|
||||
|
||||
# Creating a virtual environment just for poetry and install it with pip
|
||||
RUN python3 -m venv $POETRY_VENV \
|
||||
&& $POETRY_VENV/bin/pip install -U pip setuptools \
|
||||
&& $POETRY_VENV/bin/pip install poetry==${POETRY_VERSION}
|
||||
|
||||
# Create a new stage from the base python image
|
||||
FROM python-base as chadgpt
|
||||
|
||||
# Copy Poetry to app image
|
||||
COPY --from=poetry-base ${POETRY_VENV} ${POETRY_VENV}
|
||||
|
||||
# Add Poetry to PATH
|
||||
ENV PATH="${PATH}:${POETRY_VENV}/bin"
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy Dependencies
|
||||
COPY poetry.lock pyproject.toml ./
|
||||
|
||||
# [OPTIONAL] Validate the project is properly configured
|
||||
RUN poetry check
|
||||
|
||||
# Install Dependencies
|
||||
RUN poetry install --no-root --no-interaction --no-cache --without dev
|
||||
|
||||
# Copy Application
|
||||
COPY . /app
|
||||
COPY . /app
|
||||
|
||||
# Run Application
|
||||
EXPOSE 7860
|
||||
CMD [ "poetry", "run", "chadgpt" ]
|
||||
Reference in New Issue
Block a user