Files
kops-arm64/Dockerfile
2025-10-26 12:08:42 +01:00

44 lines
1.3 KiB
Docker

FROM node:14.0-slim AS appjs-builder
WORKDIR /app
COPY app/package.json app/package-lock.json ./
RUN npm install
COPY app .
RUN npm run build
FROM python:3.11-slim
WORKDIR /
RUN apt-get update && apt-get install --yes --no-install-recommends curl gcc libc-dev libffi-dev && rm -rf /var/lib/apt/lists/*
RUN pip3 install poetry
# https://github.com/rust-lang/cargo/issues/8719#issuecomment-1253575253
#ENV PATH=/root/.cargo/bin:$PATH
#RUN --mount=type=tmpfs,target=/root/.cargo curl https://sh.rustup.rs -sSf | bash -s -- -y && pip install poetry
COPY poetry.lock /
COPY pyproject.toml /
RUN poetry config virtualenvs.create false && \
poetry lock && \
poetry install --no-interaction --no-ansi --no-root
FROM python:3.11-slim
WORKDIR /
# copy pre-built packages to this image
COPY --from=0 /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages
# Copy the built JS files from the appjs-builder stage
COPY --from=appjs-builder /app/static/build /kube_ops_view/static/build
# now copy the actual code we will execute (poetry install above was just for dependencies)
COPY kube_ops_view /kube_ops_view
ARG VERSION=dev
RUN sed -i "s/__version__ = .*/__version__ = '${VERSION}'/" /kube_ops_view/__init__.py
ENTRYPOINT ["python3", "-m", "kube_ops_view"]