| # syntax=docker/dockerfile-upstream:master-labs |
| |
| FROM python:3.10-slim AS poetry |
| RUN --mount=type=cache,target=/root/.cache <<EOF |
| pip install poetry |
| EOF |
| |
| FROM poetry AS builder |
| RUN <<EOF |
| apt-get update |
| apt-get install -y build-essential |
| EOF |
| WORKDIR /app |
| ADD poetry.lock /app |
| ADD pyproject.toml /app |
| ENV POETRY_VIRTUALENVS_IN_PROJECT=true |
| RUN poetry install --only main --extras operator --no-root --no-interaction |
| ADD . /app |
| RUN poetry install --only main --extras operator --no-interaction |
| |
| FROM python:3.10-slim AS kubectl |
| ADD https://dl.k8s.io/release/v1.26.0/bin/linux/amd64/kubectl /kubectl |
| RUN chmod +x /kubectl |
| RUN /kubectl version --client |
| |
| FROM python:3.10-slim AS helm |
| ADD https://get.helm.sh/helm-v3.10.2-linux-amd64.tar.gz /helm.tar.gz |
| RUN tar -xvzf /helm.tar.gz |
| RUN /linux-amd64/helm version |
| |
| FROM python:3.10-slim AS runtime |
| ENV PATH="/app/.venv/bin:$PATH" |
| COPY --from=builder --link /app /app |
| COPY --from=kubectl --link /kubectl /usr/local/bin/kubectl |
| COPY --from=helm --link /linux-amd64/helm /usr/local/bin/helm |
| CMD ["kopf", "run", "/app/atmosphere/cmd/operator.py"] |