Files
fastapi-sqlalchemy-asyncpg/Dockerfile

54 lines
1.3 KiB
Docker

FROM ubuntu:25.10 AS base
RUN apt-get update -qy \
&& apt-get install -qyy \
-o APT::Install-Recommends=false \
-o APT::Install-Suggests=false \
build-essential \
ca-certificates \
python3-setuptools \
python3.14-dev
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
ENV UV_LINK_MODE=copy \
UV_COMPILE_BYTECODE=1 \
UV_PYTHON=python3.14 \
UV_PROJECT_ENVIRONMENT=/panettone
COPY pyproject.toml /_lock/
COPY uv.lock /_lock/
RUN cd /_lock && uv sync --locked --no-install-project
##########################################################################
FROM ubuntu:25.10
ENV PATH=/panettone/bin:$PATH
RUN groupadd -r panettone
RUN useradd -r -d /panettone -g panettone -N panettone
STOPSIGNAL SIGINT
RUN apt-get update -qy && apt-get install -qyy \
-o APT::Install-Recommends=false \
-o APT::Install-Suggests=false \
python3.14 \
libpython3.14 \
libpcre3
RUN apt-get clean
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
COPY --from=base --chown=panettone:panettone /panettone /panettone
USER panettone
WORKDIR /panettone
COPY /app/ app/
COPY /tests/ tests/
COPY /templates/ templates/
COPY .env app/
COPY alembic.ini /panettone/alembic.ini
COPY /alembic/ /panettone/alembic/
COPY pyproject.toml /panettone/pyproject.toml