From 930ea6e2f48a3975eb573b80b28ce573f10c3a62 Mon Sep 17 00:00:00 2001 From: danielhanrahan Date: Fri, 8 Jul 2022 17:12:40 +0100 Subject: Reduce size of docker images for distribution Avoid creating extra layers when extracting tarball Remove redundant chown commands Reduce size of Alpine image by 37% (357MB to 226MB) Reduce size of OpenSuse image by 26% (525MB to 389MB) Issue-ID: POLICY-4276 Signed-off-by: danielhanrahan Change-Id: Ieb4faceef2264059dd868ecd04581e29b436c75a --- .../src/main/docker/Dockerfile | 18 ++++++++++-------- .../src/main/docker/suse.Dockerfile | 20 +++++++++++--------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/packages/policy-distribution-docker/src/main/docker/Dockerfile b/packages/policy-distribution-docker/src/main/docker/Dockerfile index 85c90f82..3d161577 100644 --- a/packages/policy-distribution-docker/src/main/docker/Dockerfile +++ b/packages/policy-distribution-docker/src/main/docker/Dockerfile @@ -20,6 +20,11 @@ # ============LICENSE_END========================================================= #------------------------------------------------------------------------------- +FROM busybox AS tarball +RUN mkdir /packages /extracted +COPY /maven/lib/policy-distribution.tar.gz /packages/ +RUN tar xvzf /packages/policy-distribution.tar.gz --directory /extracted/ + FROM onap/policy-jre-alpine:2.4.3 LABEL maintainer="Policy Team" @@ -37,17 +42,14 @@ ARG POLICY_LOGS=/var/log/onap/policy/distribution ENV POLICY_LOGS=$POLICY_LOGS ENV POLICY_HOME=$POLICY_HOME/distribution -RUN mkdir -p $POLICY_HOME $POLICY_LOGS $POLICY_HOME/bin && \ - chown -R policy:policy $POLICY_HOME $POLICY_LOGS &&\ - mkdir /packages +RUN mkdir -p $POLICY_HOME $POLICY_LOGS && \ + chown -R policy:policy $POLICY_HOME $POLICY_LOGS -COPY /maven/* /packages -RUN tar xvfz /packages/policy-distribution.tar.gz --directory $POLICY_HOME \ - && rm /packages/policy-distribution.tar.gz +COPY --chown=policy:policy --from=tarball /extracted $POLICY_HOME WORKDIR $POLICY_HOME -COPY policy-dist.sh bin/. -RUN chown -R policy:policy * && chmod 755 bin/*.sh +COPY --chown=policy:policy policy-dist.sh bin/ +RUN chmod 755 bin/*.sh USER policy WORKDIR $POLICY_HOME/bin diff --git a/packages/policy-distribution-docker/src/main/docker/suse.Dockerfile b/packages/policy-distribution-docker/src/main/docker/suse.Dockerfile index 0690bb24..f709c336 100644 --- a/packages/policy-distribution-docker/src/main/docker/suse.Dockerfile +++ b/packages/policy-distribution-docker/src/main/docker/suse.Dockerfile @@ -19,6 +19,11 @@ # ============LICENSE_END========================================================= #------------------------------------------------------------------------------- +FROM busybox AS tarball +RUN mkdir /packages /extracted +COPY /maven/lib/policy-distribution.tar.gz /packages/ +RUN tar xvzf /packages/policy-distribution.tar.gz --directory /extracted/ + FROM opensuse/leap:15.4 LABEL maintainer="Policy Team" @@ -38,21 +43,18 @@ ENV POLICY_HOME=/opt/app/policy/distribution ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 ENV JAVA_HOME=/usr/lib64/jvm/java-11-openjdk-11 -RUN zypper -n -q install --no-recommends gzip java-11-openjdk-headless netcat-openbsd tar && \ +RUN zypper -n -q install --no-recommends java-11-openjdk-headless netcat-openbsd && \ zypper -n -q update && zypper -n -q clean --all && \ groupadd --system policy && \ useradd --system --shell /bin/sh -G policy policy && \ - mkdir -p $POLICY_LOGS $POLICY_HOME $POLICY_HOME/bin && \ - chown -R policy:policy $POLICY_HOME $POLICY_LOGS && \ - mkdir /packages + mkdir -p $POLICY_HOME $POLICY_LOGS && \ + chown -R policy:policy $POLICY_HOME $POLICY_LOGS -COPY /maven/* /packages -RUN tar xvfz /packages/policy-distribution.tar.gz --directory $POLICY_HOME \ - && rm /packages/policy-distribution.tar.gz +COPY --chown=policy:policy --from=tarball /extracted $POLICY_HOME WORKDIR $POLICY_HOME -COPY policy-dist.sh bin/. -RUN chown -R policy:policy * && chmod 755 bin/*.sh +COPY --chown=policy:policy policy-dist.sh bin/ +RUN chmod 755 bin/*.sh USER policy WORKDIR $POLICY_HOME/bin -- cgit 1.2.3-korg