-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.fastapi_api
44 lines (31 loc) · 1.29 KB
/
Dockerfile.fastapi_api
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
FROM python:3.13.2-slim as builder
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
apt-get -y upgrade && \
apt-get install -y --no-install-recommends build-essential libffi-dev libxml2-dev \
libxslt-dev curl libpq-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
RUN python -m venv /venv
ENV PATH=/venv/bin:/root/.poetry/bin:${PATH}
RUN pip install --upgrade pip && pip install dumb-init
ARG API_DIR
WORKDIR /backend/fastapi_api
COPY fastapi_api/pyproject.toml fastapi_api/poetry.lock ./
RUN POETRY_VIRTUALENVS_CREATE=false poetry install --no-dev
FROM python:3.13.2-slim as final
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
apt-get install -y --no-install-recommends libpq-dev
COPY --chown=nobody:nogroup --from=builder /venv /venv
ENV PATH=/venv/bin:${PATH}
WORKDIR /backend/fastapi_api
RUN chown -R nobody:nogroup .
COPY --chown=nobody:nogroup fastapi_api/app ./app
COPY --chown=nobody:nogroup fastapi_api/hypercorn.toml .
COPY --chown=nobody:nogroup common/app /backend/common/app
USER nobody
EXPOSE 8443
ENTRYPOINT ["dumb-init", "--"]
CMD ["hypercorn", "--config=hypercorn.toml", "app:create_app()"]