80d23f0e3d
Endoleap brand checks / verify (pull_request) Successful in 2m27s
creative workspace review checks / verify-deployed-canvas (pull_request) Successful in 3m10s
creative workspace review checks / verify (pull_request) Successful in 42m47s
python CI and deployment / verify-and-deploy (pull_request) Successful in 9m51s
23 lines
931 B
Docker
23 lines
931 B
Docker
FROM python:3.12-slim AS base
|
|
RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg fonts-noto-cjk && rm -rf /var/lib/apt/lists/*
|
|
|
|
FROM base AS dependencies
|
|
ENV PATH="/opt/venv/bin:$PATH"
|
|
WORKDIR /app
|
|
RUN python -m venv /opt/venv
|
|
COPY apps/python/pyproject.toml ./
|
|
# Read the pinned requirements from the package metadata before copying source.
|
|
RUN python -c 'import subprocess, tomllib; p = tomllib.load(open("pyproject.toml", "rb")); subprocess.check_call(["python", "-m", "pip", "install", "--no-cache-dir", *p["build-system"]["requires"], *p["project"]["dependencies"]])'
|
|
|
|
FROM dependencies AS build
|
|
COPY apps/python/ .
|
|
RUN pip install --no-cache-dir --no-deps --no-build-isolation . && python -m unittest discover -s tests -v
|
|
|
|
FROM base AS runtime
|
|
WORKDIR /app
|
|
ENV PATH="/opt/venv/bin:$PATH"
|
|
COPY --from=build /opt/venv /opt/venv
|
|
RUN useradd --create-home exporter
|
|
USER exporter
|
|
ENTRYPOINT ["prompt-export"]
|