blob: d9468a7a5859e2a25c0b9ad6c87e899d87968890 [file] [log] [blame]
Mohammed Naserd531f362022-09-16 11:38:55 -04001# syntax=docker/dockerfile-upstream:master-labs
2
3FROM python:3.10-slim AS poetry
4RUN --mount=type=cache,target=/root/.cache <<EOF
5 pip install poetry
6EOF
7
8FROM poetry AS builder
Mohammed Naser124a9bc2022-09-19 15:13:16 -04009RUN <<EOF
10 apt-get update
Mohammed Naser6d62c4c2022-10-13 17:41:24 +000011 apt-get install -y build-essential
Mohammed Naser124a9bc2022-09-19 15:13:16 -040012EOF
Mohammed Naserd531f362022-09-16 11:38:55 -040013WORKDIR /app
Mohammed Naser16765f02022-09-30 14:56:47 +000014ADD poetry.lock /app
15ADD pyproject.toml /app
Mohammed Naserd531f362022-09-16 11:38:55 -040016ENV POETRY_VIRTUALENVS_IN_PROJECT=true
Mohammed Naser71ebfe82022-12-28 05:28:16 +000017RUN poetry install --only main --extras operator --no-root --no-interaction
Mohammed Naser16765f02022-09-30 14:56:47 +000018ADD . /app
Mohammed Naser71ebfe82022-12-28 05:28:16 +000019RUN poetry install --only main --extras operator --no-interaction
Mohammed Naserd531f362022-09-16 11:38:55 -040020
Mohammed Naser096ade02022-12-15 09:53:33 -050021FROM python:3.10-slim AS kubectl
22ADD https://dl.k8s.io/release/v1.26.0/bin/linux/amd64/kubectl /kubectl
23RUN chmod +x /kubectl
24RUN /kubectl version --client
25
26FROM python:3.10-slim AS helm
27ADD https://get.helm.sh/helm-v3.10.2-linux-amd64.tar.gz /helm.tar.gz
28RUN tar -xvzf /helm.tar.gz
29RUN /linux-amd64/helm version
30
Mohammed Naserd531f362022-09-16 11:38:55 -040031FROM python:3.10-slim AS runtime
32ENV PATH="/app/.venv/bin:$PATH"
33COPY --from=builder --link /app /app
Mohammed Naser096ade02022-12-15 09:53:33 -050034COPY --from=kubectl --link /kubectl /usr/local/bin/kubectl
35COPY --from=helm --link /linux-amd64/helm /usr/local/bin/helm
Mohammed Naser84ba2ec2022-11-28 04:31:51 +000036CMD ["kopf", "run", "/app/atmosphere/cmd/operator.py"]