From 781c9961cb26da0821f6fc460e1fc1640cb5f8ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20P=C3=B6schl?= Date: Fri, 14 May 2021 13:32:32 +0200 Subject: [PATCH] Migrate to multistaged Dockerfile for debian images. --- docker-files/Dockerfile | 34 --------------------- docker-files/debian.Dockerfile | 56 ++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 34 deletions(-) delete mode 100644 docker-files/Dockerfile create mode 100644 docker-files/debian.Dockerfile diff --git a/docker-files/Dockerfile b/docker-files/Dockerfile deleted file mode 100644 index 2a169c92..00000000 --- a/docker-files/Dockerfile +++ /dev/null @@ -1,34 +0,0 @@ -# -# Glances Dockerfile (based on Ubuntu) -# -# https://github.com/nicolargo/glances -# - -ARG ARCH= -FROM ${ARCH}python:3-slim-buster - -# Install package -# Must used calibre package to be able to run external module -ENV DEBIAN_FRONTEND noninteractive -RUN \ - apt-get update && \ - apt-get install -y \ - curl \ - gcc \ - lm-sensors \ - wireless-tools \ - iputils-ping && \ - rm -rf /var/lib/apt/lists/* - -# Force rebuild otherwise it could be cached without rerun -ARG VCS_REF -RUN pip install glances[all] - -# Define working directory. -WORKDIR /glances - -# EXPOSE PORT (XMLRPC / WebUI) -EXPOSE 61209 61208 - -# Define default command. -CMD python3 -m glances -C /glances/conf/glances.conf $GLANCES_OPT diff --git a/docker-files/debian.Dockerfile b/docker-files/debian.Dockerfile new file mode 100644 index 00000000..75e60c7c --- /dev/null +++ b/docker-files/debian.Dockerfile @@ -0,0 +1,56 @@ +# +# Glances Dockerfile (based on Debian) +# +# https://github.com/nicolargo/glances +# + +ARG ARCH +FROM ${ARCH}python:3.9-slim-buster as build + +# Install package +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + python3-dev \ + curl \ + gcc \ + lm-sensors \ + wireless-tools \ + iputils-ping && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +# Force rebuild otherwise it could be cached without rerun +ARG VCS_REF +RUN pip3 install --no-cache-dir --user glances[all] + +FROM build as additional-packages + +COPY *requirements.txt . + +RUN CASS_DRIVER_NO_CYTHON=1 pip3 install --no-cache-dir --user -r optional-requirements.txt + + +#Create running image without any building dependency +FROM ${ARCH}python:3.9-slim-buster as minimal + +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + curl \ + lm-sensors \ + wireless-tools \ + iputils-ping && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +COPY --from=build /root/.local/bin /usr/local/bin/ +COPY --from=build /root/.local/lib/python3.9/site-packages /usr/local/lib/python3.9/site-packages/ + +# EXPOSE PORT (XMLRPC / WebUI) +EXPOSE 61209 61208 + +# Define default command. +CMD python3 -m glances -C /glances/conf/glances.conf $GLANCES_OPT + + +FROM minimal as full + +COPY --from=additional-packages /root/.local/lib/python3.9/site-packages /usr/local/lib/python3.9/site-packages/ +