diff --git a/docker-files/alpine.Dockerfile b/docker-files/alpine.Dockerfile index cedf5e32..2088e0e8 100644 --- a/docker-files/alpine.Dockerfile +++ b/docker-files/alpine.Dockerfile @@ -9,7 +9,7 @@ # WARNING: the Alpine image version and Python version should be set. # Alpine 3.18 tag is a link to the latest 3.18.x version. # Be aware that if you change the Alpine version, you may have to change the Python version. -ARG IMAGE_VERSION=3.22 +ARG IMAGE_VERSION=3.23 ARG PYTHON_VERSION=3.12 ############################################################################## @@ -61,9 +61,6 @@ RUN apk add --no-cache \ RUN python${PYTHON_VERSION} -m venv venv-build RUN /venv-build/bin/python${PYTHON_VERSION} -m pip install --upgrade pip -RUN python${PYTHON_VERSION} -m venv venv-build -RUN /venv-build/bin/python${PYTHON_VERSION} -m pip install --upgrade pip - RUN python${PYTHON_VERSION} -m venv --without-pip venv COPY pyproject.toml docker-requirements.txt all-requirements.txt ./ @@ -105,17 +102,18 @@ COPY docker-bin.sh /usr/local/bin/glances RUN chmod a+x /usr/local/bin/glances ENV PATH="/venv/bin:$PATH" -# Copy binary and update PATH -COPY docker-bin.sh /usr/local/bin/glances -RUN chmod a+x /usr/local/bin/glances -ENV PATH="/venv/bin:$PATH" - # EXPOSE PORT (XMLRPC / WebUI) EXPOSE 61209 61208 +# Add glances user +# RUN addgroup -g 1000 glances && \ +# adduser -D -u 1000 -G glances glances && \ +# chown -R glances:glances /app + # Define default command. WORKDIR /app -CMD ["/bin/sh", "-c", "/venv/bin/python3 -m glances ${GLANCES_OPT}"] +ENV PYTHON_VERSION=${PYTHON_VERSION} +CMD ["/bin/sh", "-c", "/venv/bin/python${PYTHON_VERSION} -m glances ${GLANCES_OPT}"] ################################################################################ # RELEASE: minimal @@ -123,6 +121,8 @@ FROM release AS minimal COPY --from=buildminimal /venv /venv +# USER glances + ################################################################################ # RELEASE: full FROM release AS full @@ -131,6 +131,8 @@ RUN apk add --no-cache libzmq COPY --from=buildfull /venv /venv +# USER glances + ################################################################################ # RELEASE: dev - to be compatible with CI FROM full AS dev @@ -140,5 +142,8 @@ FROM full AS dev COPY ./docker-files/docker-logger.json /app ENV LOG_CFG=/app/docker-logger.json +# USER glances + WORKDIR /app -CMD ["/bin/sh", "-c", "/venv/bin/python3 -m glances ${GLANCES_OPT}"] +ENV PYTHON_VERSION=${PYTHON_VERSION} +CMD ["/bin/sh", "-c", "/venv/bin/python${PYTHON_VERSION} -m glances ${GLANCES_OPT}"] diff --git a/docker-files/ubuntu.Dockerfile b/docker-files/ubuntu.Dockerfile index 2ae96056..f208f1f1 100644 --- a/docker-files/ubuntu.Dockerfile +++ b/docker-files/ubuntu.Dockerfile @@ -89,17 +89,21 @@ COPY docker-bin.sh /usr/local/bin/glances RUN chmod a+x /usr/local/bin/glances ENV PATH="/venv/bin:$PATH" -# Copy binary and update PATH -COPY docker-bin.sh /usr/local/bin/glances -RUN chmod a+x /usr/local/bin/glances -ENV PATH="/venv/bin:$PATH" - # EXPOSE PORT (XMLRPC / WebUI) EXPOSE 61209 61208 +# Add glances user +# NOTE: If used, the Glances Docker plugin do not work... +# UID and GUID 1000 are already configured for the ubuntu user +# Create anew one with UID and GUID 1001 +# RUN groupadd -g 1001 glances && \ +# useradd -u 1001 -g glances glances && \ +# chown -R glances:glances /app + # Define default command. WORKDIR /app -CMD ["/bin/sh", "-c", "/venv/bin/python3 -m glances ${GLANCES_OPT}"] +ENV PYTHON_VERSION=${PYTHON_VERSION} +CMD ["/bin/sh", "-c", "/venv/bin/python${PYTHON_VERSION} -m glances ${GLANCES_OPT}"] ################################################################################ # RELEASE: minimal @@ -108,6 +112,8 @@ ARG PYTHON_VERSION COPY --from=buildMinimal /venv /venv +# USER glances + ################################################################################ # RELEASE: full FROM release AS full @@ -120,6 +126,8 @@ RUN apt-get update \ COPY --from=buildfull /venv /venv +# USER glances + ################################################################################ # RELEASE: dev - to be compatible with CI FROM full AS dev @@ -130,5 +138,8 @@ ARG PYTHON_VERSION COPY ./docker-files/docker-logger.json /app ENV LOG_CFG=/app/docker-logger.json +# USER glances + WORKDIR /app -CMD ["/bin/sh", "-c", "/venv/bin/python3 -m glances ${GLANCES_OPT}"] +ENV PYTHON_VERSION=${PYTHON_VERSION} +CMD ["/bin/sh", "-c", "/venv/bin/python${PYTHON_VERSION} -m glances ${GLANCES_OPT}"]