From 9ea10ba5c10ee5671a63f8854f86d8d125f9219a Mon Sep 17 00:00:00 2001 From: Untone Date: Sun, 25 Feb 2024 19:32:36 +0300 Subject: [PATCH] dockerfile-revert --- Dockerfile | 77 +++++------------------------------------------------- 1 file changed, 6 insertions(+), 71 deletions(-) diff --git a/Dockerfile b/Dockerfile index 94902fdb..981c3404 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,77 +1,12 @@ -# syntax=docker/dockerfile:1 -# Keep this syntax directive! It's used to enable Docker BuildKit - -# Based on https://github.com/python-poetry/poetry/discussions/1879?sort=top#discussioncomment-216865 - -FROM python:alpine as python-base - - # python -ENV PYTHONUNBUFFERED=1 \ - # prevents python creating .pyc files - PYTHONDONTWRITEBYTECODE=1 \ - \ - # pip - PIP_DISABLE_PIP_VERSION_CHECK=on \ - PIP_DEFAULT_TIMEOUT=100 \ - \ - # poetry - # https://python-poetry.org/docs/configuration/#using-environment-variables - POETRY_VERSION=1.8.0 \ - # make poetry install to this location - POETRY_HOME="/opt/poetry" \ - # make poetry create the virtual environment in the project's root - # it gets named `.venv` - POETRY_VIRTUALENVS_IN_PROJECT=true \ - # do not ask any interactive question - POETRY_NO_INTERACTION=1 \ - \ - # paths - # this is where our requirements + virtual environment will live - PYSETUP_PATH="/opt/pysetup" \ - VENV_PATH="/opt/pysetup/.venv" - - -# prepend poetry and venv to path -ENV PATH="$POETRY_HOME/bin:$VENV_PATH/bin:$PATH" - - -################################ -# BUILDER-BASE -# Used to build deps + create our virtual environment -################################ -FROM python-base as builder - -# Update package lists and install necessary dependencies -RUN apk update && \ - apk add --no-cache build-base icu-data-full curl python3-dev musl-dev postgresql-dev postgresql-client - -# install poetry - respects $POETRY_VERSION & $POETRY_HOME -# The --mount will mount the buildx cache directory to where -# Poetry and Pip store their cache so that they can re-use it -RUN --mount=type=cache,target=/root/.cache \ - curl -sSL https://install.python-poetry.org | python - - -# copy project requirement files here to ensure they will be cached. -WORKDIR $PYSETUP_PATH -COPY poetry.lock pyproject.toml ./ - -# install runtime deps - uses $POETRY_VIRTUALENVS_IN_PROJECT internally -RUN --mount=type=cache,target=/root/.cache \ - poetry install --only main - - -################################ -# Final image used for runtime -################################ -FROM python-base - -COPY --from=builder $PYSETUP_PATH $PYSETUP_PATH +FROM python:alpine +WORKDIR /app COPY . /app -WORKDIR /app +RUN apk update && apk add --no-cache build-base icu-data-full curl python3-dev musl-dev postgresql-dev postgresql-client +RUN curl -sSL https://install.python-poetry.org | python +ENV PATH="${PATH}:/root/.local/bin" +RUN poetry config virtualenvs.create false && poetry install --only main -# Expose the port EXPOSE 8000 -# Command to run the application CMD ["python", "server.py"]