parent
70aa772d6c
commit
d12061c5b9
@ -1,31 +1,24 @@
|
|||||||
FROM python:3.12-alpine as base
|
FROM python:3.12-slim-bookworm AS builder
|
||||||
ENV PYTHONFAULTHANDLER=1 \
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
||||||
PYTHONHASHSEED=random \
|
ENV UV_HTTP_TIMEOUT=100 \
|
||||||
PYTHONUNBUFFERED=1
|
UV_NO_CACHE=1
|
||||||
RUN apk update && \
|
|
||||||
apk upgrade && \
|
|
||||||
apk add --no-cache libgcc
|
|
||||||
FROM python:3.12-alpine AS builder
|
|
||||||
ENV PIP_DEFAULT_TIMEOUT=100 \
|
|
||||||
PIP_DISABLE_PIP_VERSION_CHECK=1 \
|
|
||||||
PIP_NO_CACHE_DIR=1
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN apk update && \
|
RUN uv pip install --system poetry poetry-plugin-export
|
||||||
apk upgrade && \
|
COPY pyproject.toml poetry.lock ./
|
||||||
apk add gcc libc-dev libffi-dev cargo alpine-sdk bsd-compat-headers openssl-dev python3-dev && \
|
RUN uv venv /venv && \
|
||||||
python -m pip install --upgrade pip && \
|
poetry config warnings.export false && \
|
||||||
pip install poetry
|
poetry export -f requirements.txt -o requirements.txt && \
|
||||||
RUN python -m venv /venv
|
VIRTUAL_ENV=/venv uv pip install -r requirements.txt
|
||||||
COPY ["pyproject.toml", "./"]
|
|
||||||
COPY ["poetry.lock", "./"]
|
|
||||||
RUN poetry export -f requirements.txt | /venv/bin/pip install -r /dev/stdin
|
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN poetry build && /venv/bin/pip install dist/*.whl
|
RUN poetry build && \
|
||||||
|
VIRTUAL_ENV=/venv uv pip install dist/*.whl
|
||||||
|
|
||||||
FROM base AS final
|
FROM python:3.12-slim-bookworm AS final
|
||||||
|
ENV PYTHONFAULTHANDLER=1 \
|
||||||
|
PYTHONHASHSEED=random \
|
||||||
|
PYTHONUNBUFFERED=1
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY --from=builder /venv /venv
|
COPY --from=builder /venv /venv
|
||||||
ENV PATH="/venv/bin:${PATH}"
|
ENV PATH="/venv/bin:${PATH}"
|
||||||
# CMD [ "mitmproxy2swagger" ]
|
|
||||||
|
|
||||||
ENTRYPOINT [ "mitmproxy2swagger" ]
|
ENTRYPOINT [ "mitmproxy2swagger" ]
|
||||||
|
Loading…
Reference in new issue