Files

34 lines
1.1 KiB
Docker

FROM python:3.12-slim
ARG SOURCE_COMMIT
ARG SOURCE_VERSION
LABEL org.opencontainers.image.source="https://github.com/fourblocks2020/trex-core" \
org.opencontainers.image.revision="${SOURCE_COMMIT}" \
org.opencontainers.image.version="${SOURCE_VERSION}" \
org.opencontainers.image.title="trex-core"
WORKDIR /opt/trex-core
RUN test "${#SOURCE_COMMIT}" -eq 40 \
&& case "${SOURCE_COMMIT}" in \
*[!0-9a-f]*) false ;; \
*) true ;; \
esac \
|| { echo "SOURCE_COMMIT must be a 40-character lowercase commit" >&2; exit 1; }
COPY pyproject.toml uv.lock ./
COPY trex_core/ ./trex_core/
RUN test "$(python -c 'import pathlib,tomllib; print(tomllib.loads(pathlib.Path("pyproject.toml").read_text())["project"]["version"])')" = "${SOURCE_VERSION}" \
|| { echo "SOURCE_VERSION must match pyproject.toml" >&2; exit 1; }
RUN python -m pip install --no-cache-dir "uv==0.11.14" \
&& uv sync --locked --no-dev --no-editable \
&& useradd --create-home --uid 10001 trex
ENV PATH="/opt/trex-core/.venv/bin:${PATH}"
USER 10001:10001
ENTRYPOINT ["trex-core-daemon"]