From a5dd0e0e1dc12c693b338ca94212b2bf5f32c53b Mon Sep 17 00:00:00 2001 From: danielhanrahan Date: Wed, 29 Jun 2022 13:51:39 +0100 Subject: Reduce size of docker images for API Remove unused jar files from image (not needed since spring boot) Avoid creating extra layers when extracting tarball Reduce size of Alpine image by 73% (956MB to 259MB) Reduce size of OpenSuse image by 62% (1.12GB to 423MB) Issue-ID: POLICY-4265 Signed-off-by: danielhanrahan Change-Id: I321cd42ade294a8af40c64612037d3ca1cf58341 --- .../policy-api-docker/src/main/docker/Dockerfile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'packages/policy-api-docker/src/main/docker/Dockerfile') diff --git a/packages/policy-api-docker/src/main/docker/Dockerfile b/packages/policy-api-docker/src/main/docker/Dockerfile index 7fd6da9b..8ac777c3 100644 --- a/packages/policy-api-docker/src/main/docker/Dockerfile +++ b/packages/policy-api-docker/src/main/docker/Dockerfile @@ -20,6 +20,12 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= #------------------------------------------------------------------------------- + +FROM busybox AS tarball +RUN mkdir /packages /extracted +COPY /maven/lib/policy-api.tar.gz /packages/ +RUN tar xvzf /packages/policy-api.tar.gz --directory /extracted/ + FROM onap/policy-jre-alpine:2.4.3 LABEL maintainer="Policy Team" @@ -37,18 +43,16 @@ ARG POLICY_LOGS=/var/log/onap/policy/api ENV POLICY_LOGS=$POLICY_LOGS ENV POLICY_HOME=$POLICY_HOME/api -RUN mkdir -p $POLICY_LOGS $POLICY_HOME $POLICY_HOME/bin && \ - chown -R policy:policy $POLICY_HOME $POLICY_LOGS && \ - mkdir /packages -COPY /maven/lib/policy-api.tar.gz /packages -RUN tar xvfz /packages/policy-api.tar.gz --directory $POLICY_HOME && \ - rm /packages/policy-api.tar.gz +RUN mkdir -p $POLICY_HOME $POLICY_LOGS && \ + chown -R policy:policy $POLICY_HOME $POLICY_LOGS + +COPY --chown=policy:policy --from=tarball /extracted/ $POLICY_HOME/ WORKDIR $POLICY_HOME -COPY policy-api.sh bin/. -COPY /maven/api.jar /app +COPY --chown=policy:policy policy-api.sh bin/ +COPY --chown=policy:policy /maven/api.jar /app/ -RUN chown -R policy:policy * && chmod 755 bin/*.sh && chown -R policy:policy /app +RUN chmod 755 bin/*.sh USER policy WORKDIR $POLICY_HOME/bin -- cgit