kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
72 wiersze
1.5 KiB
Docker
72 wiersze
1.5 KiB
Docker
![]() |
FROM python:3.13-slim AS builder
|
||
|
|
||
|
ARG POETRY_VERSION=1.8
|
||
|
|
||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||
|
|
||
|
ENV VIRTUAL_ENV=/venv
|
||
|
ENV PATH="/venv/bin:$PATH"
|
||
|
|
||
|
ENV POETRY_HOME=/opt/poetry
|
||
|
ENV POETRY_NO_INTERACTION=1
|
||
|
ENV POETRY_VIRTUALENVS_IN_PROJECT=1
|
||
|
ENV POETRY_VIRTUALENVS_CREATE=1
|
||
|
ENV PYTHONDONTWRITEBYTECODE=1
|
||
|
ENV PYTHONUNBUFFERED=1
|
||
|
# Tell Poetry where to place its cache and virtual environment
|
||
|
ENV POETRY_CACHE_DIR=/opt/.cache
|
||
|
|
||
|
RUN pip install "poetry==${POETRY_VERSION}"
|
||
|
|
||
|
RUN --mount=type=cache,target=/var/lib/apt/lists \
|
||
|
apt update; \
|
||
|
apt install -y \
|
||
|
build-essential \
|
||
|
python3-dev \
|
||
|
libldap-dev \
|
||
|
libsasl2-dev \
|
||
|
slapd \
|
||
|
ldap-utils \
|
||
|
tox \
|
||
|
lcov \
|
||
|
valgrind
|
||
|
|
||
|
WORKDIR /app
|
||
|
|
||
|
COPY pyproject.toml .
|
||
|
|
||
|
RUN python3 -m venv --system-site-packages ${VIRTUAL_ENV} && . ${VIRTUAL_ENV}/bin/activate
|
||
|
RUN --mount=type=cache,target=/opt/.cache \
|
||
|
poetry install --no-root --extras typesense
|
||
|
|
||
|
FROM python:3.13-slim AS runtime
|
||
|
|
||
|
ARG POETRY_VERSION=1.8
|
||
|
|
||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||
|
|
||
|
ENV VIRTUAL_ENV=/venv
|
||
|
ENV PATH="/venv/bin:$PATH"
|
||
|
|
||
|
RUN --mount=type=cache,target=/var/lib/apt/lists \
|
||
|
apt update; \
|
||
|
apt install -y \
|
||
|
ffmpeg \
|
||
|
gettext \
|
||
|
libjpeg-dev \
|
||
|
libldap-2.5-0 \
|
||
|
libmagic1 \
|
||
|
libpq5 \
|
||
|
libxml2 \
|
||
|
libxslt1.1
|
||
|
RUN pip install "poetry==${POETRY_VERSION}"
|
||
|
|
||
|
COPY --from=builder ${VIRTUAL_ENV} ${VIRTUAL_ENV}
|
||
|
|
||
|
WORKDIR /app
|
||
|
|
||
|
COPY . /app
|
||
|
RUN poetry install --extras typesense
|
||
|
|
||
|
CMD ["./docker/server.sh"]
|