mirror of
https://github.com/nicolargo/glances.git
synced 2024-10-26 12:08:28 +03:00
Refactor Docker file CI
This commit is contained in:
parent
265ed00129
commit
e1a85a24f7
2
.dockerignore
Normal file
2
.dockerignore
Normal file
@ -0,0 +1,2 @@
|
||||
.dockerignore
|
||||
.git
|
@ -28,23 +28,27 @@ RUN apk add --no-cache \
|
||||
wireless-tools \
|
||||
iputils
|
||||
|
||||
|
||||
FROM build as remoteInstall
|
||||
ARG PYTHON_VERSION
|
||||
##############################################################################
|
||||
# Install the dependencies beforehand to make them cacheable
|
||||
|
||||
FROM build as buildRequirements
|
||||
ARG PYTHON_VERSION
|
||||
COPY requirements.txt .
|
||||
RUN pip3 install --no-cache-dir --user -r requirements.txt
|
||||
# As minimal image we want to monitor others docker containers
|
||||
RUN pip3 install --no-cache-dir --user docker
|
||||
|
||||
# Force install otherwise it could be cached without rerun
|
||||
ARG CHANGING_ARG
|
||||
RUN pip3 install --no-cache-dir --user "glances[all]"
|
||||
RUN pip3 install --no-cache-dir --user glances
|
||||
|
||||
##############################################################################
|
||||
|
||||
FROM build as additional-packages
|
||||
FROM build as buildOptionalRequirements
|
||||
ARG PYTHON_VERSION
|
||||
|
||||
COPY *requirements.txt ./
|
||||
|
||||
COPY requirements.txt .
|
||||
COPY optional-requirements.txt .
|
||||
RUN CASS_DRIVER_NO_CYTHON=1 pip3 install --no-cache-dir --user -r optional-requirements.txt
|
||||
|
||||
##############################################################################
|
||||
@ -54,9 +58,9 @@ RUN CASS_DRIVER_NO_CYTHON=1 pip3 install --no-cache-dir --user -r optional-requi
|
||||
FROM build as full
|
||||
ARG PYTHON_VERSION
|
||||
|
||||
COPY --from=remoteInstall /root/.local/bin /usr/local/bin/
|
||||
COPY --from=remoteInstall /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY --from=additional-packages /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY --from=buildRequirements /root/.local/bin /usr/local/bin/
|
||||
COPY --from=buildRequirements /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY --from=buildOptionalRequirements /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY ./docker-compose/glances.conf /etc/glances.conf
|
||||
|
||||
# EXPOSE PORT (XMLRPC / WebUI)
|
||||
@ -82,19 +86,35 @@ RUN apk add --no-cache \
|
||||
wireless-tools \
|
||||
iputils
|
||||
|
||||
COPY --from=remoteInstall /root/.local/bin /usr/local/bin/
|
||||
COPY --from=remoteInstall /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY --from=buildRequirements /root/.local/bin /usr/local/bin/
|
||||
COPY --from=buildRequirements /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY ./docker-compose/glances.conf /etc/glances.conf
|
||||
|
||||
# EXPOSE PORT (XMLRPC)
|
||||
# EXPOSE PORT (XMLRPC only because WebUI is not available)
|
||||
EXPOSE 61209
|
||||
|
||||
# Define default command.
|
||||
CMD python3 -m glances -C /etc/glances.conf $GLANCES_OPT
|
||||
|
||||
##############################################################################
|
||||
# dev image (=full)
|
||||
# dev image
|
||||
##############################################################################
|
||||
|
||||
FROM full as dev
|
||||
ARG PYTHON_VERSION
|
||||
|
||||
COPY --from=buildRequirements /root/.local/bin /usr/local/bin/
|
||||
COPY --from=buildRequirements /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY --from=buildOptionalRequirements /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY ./docker-compose/glances.conf /etc/glances.conf
|
||||
|
||||
# Copy the current Glances source code
|
||||
COPY . /glances
|
||||
|
||||
# EXPOSE PORT (XMLRPC / WebUI)
|
||||
EXPOSE 61209 61208
|
||||
|
||||
WORKDIR /glances
|
||||
|
||||
# Define default command.
|
||||
CMD python3 -m glances -C /etc/glances.conf $GLANCES_OPT
|
||||
|
@ -25,23 +25,27 @@ RUN apt-get update && \
|
||||
iputils-ping && \
|
||||
apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
FROM build as remoteInstall
|
||||
ARG PYTHON_VERSION
|
||||
##############################################################################
|
||||
# Install the dependencies beforehand to make them cacheable
|
||||
|
||||
FROM build as buildRequirements
|
||||
ARG PYTHON_VERSION
|
||||
COPY requirements.txt .
|
||||
RUN pip3 install --no-cache-dir --user -r requirements.txt
|
||||
# As minimal image we want to monitor others docker containers
|
||||
RUN pip3 install --no-cache-dir --user docker
|
||||
|
||||
# Force install otherwise it could be cached without rerun
|
||||
ARG CHANGING_ARG
|
||||
RUN pip3 install --no-cache-dir --user "glances[all]"
|
||||
RUN pip3 install --no-cache-dir --user glances
|
||||
|
||||
##############################################################################
|
||||
|
||||
FROM build as additional-packages
|
||||
FROM build as buildOptionalRequirements
|
||||
ARG PYTHON_VERSION
|
||||
|
||||
COPY *requirements.txt ./
|
||||
|
||||
COPY requirements.txt .
|
||||
COPY optional-requirements.txt .
|
||||
RUN CASS_DRIVER_NO_CYTHON=1 pip3 install --no-cache-dir --user -r optional-requirements.txt
|
||||
|
||||
##############################################################################
|
||||
@ -51,10 +55,9 @@ RUN CASS_DRIVER_NO_CYTHON=1 pip3 install --no-cache-dir --user -r optional-requi
|
||||
FROM build as full
|
||||
ARG PYTHON_VERSION
|
||||
|
||||
COPY --from=remoteInstall /root/.local/bin /usr/local/bin/
|
||||
COPY --from=remoteInstall /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY --from=additional-packages /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY . /glances
|
||||
COPY --from=buildRequirements /root/.local/bin /usr/local/bin/
|
||||
COPY --from=buildRequirements /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY --from=buildOptionalRequirements /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY ./docker-compose/glances.conf /etc/glances.conf
|
||||
|
||||
# EXPOSE PORT (XMLRPC / WebUI)
|
||||
@ -82,8 +85,8 @@ RUN apt-get update && \
|
||||
iputils-ping && \
|
||||
apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=remoteInstall /root/.local/bin /usr/local/bin/
|
||||
COPY --from=remoteInstall /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY --from=buildRequirements /root/.local/bin /usr/local/bin/
|
||||
COPY --from=buildRequirements /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY ./docker-compose/glances.conf /etc/glances.conf
|
||||
|
||||
# EXPOSE PORT (XMLRPC)
|
||||
@ -93,17 +96,20 @@ EXPOSE 61209
|
||||
CMD python3 -m glances -C /etc/glances.conf $GLANCES_OPT
|
||||
|
||||
##############################################################################
|
||||
# dev image (=full)
|
||||
# dev image
|
||||
##############################################################################
|
||||
|
||||
FROM build as dev
|
||||
FROM full as dev
|
||||
ARG PYTHON_VERSION
|
||||
|
||||
COPY --from=remoteInstall /root/.local/bin /usr/local/bin/
|
||||
COPY --from=remoteInstall /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY --from=additional-packages /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY --from=buildRequirements /root/.local/bin /usr/local/bin/
|
||||
COPY --from=buildRequirements /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY --from=buildOptionalRequirements /root/.local/lib/python${PYTHON_VERSION}/site-packages /usr/lib/python${PYTHON_VERSION}/site-packages/
|
||||
COPY ./docker-compose/glances.conf /etc/glances.conf
|
||||
|
||||
# Copy the current Glances source code
|
||||
COPY . /glances
|
||||
|
||||
# EXPOSE PORT (XMLRPC / WebUI)
|
||||
EXPOSE 61209 61208
|
||||
|
||||
@ -111,4 +117,3 @@ WORKDIR /glances
|
||||
|
||||
# Define default command.
|
||||
CMD python3 -m glances -C /etc/glances.conf $GLANCES_OPT
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user