From 838c329943abc5692d6485e98704164b489b269c Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Fri, 7 Feb 2025 14:24:23 -0500 Subject: [PATCH] Redesign CCSDK alpine image creation Combined creation of CCSDK base images into one pom and one Dockerfile, and create images for java11, java17 and java21 Issue-ID: CCSDK-4086 Signed-off-by: Dan Timoney Change-Id: I6daa42fbcd451df207fc31750687250a1664b764 --- alpine/java11/pom.xml | 116 --------------- alpine/java11/src/main/docker/Dockerfile | 19 --- alpine/java17/pom.xml | 136 ----------------- alpine/java17/src/main/docker/Dockerfile | 30 ---- alpine/pom.xml | 164 ++++++++++++++++++++- alpine/src/main/docker/Dockerfile | 47 ++++++ .../src/main/resources/README-custom-certs.md | 0 dgbuilder-docker/src/main/docker/Dockerfile | 1 + odlsli/src/main/dc/docker-compose.yaml | 2 +- opendaylight/argon/argon-alpine/pom.xml | 2 +- opendaylight/chlorine/chlorine-alpine/pom.xml | 2 +- src/main/yaml/docker-compose.yml | 2 +- ubuntu/pom.xml | 2 +- 13 files changed, 213 insertions(+), 310 deletions(-) delete mode 100644 alpine/java11/pom.xml delete mode 100644 alpine/java11/src/main/docker/Dockerfile delete mode 100644 alpine/java17/pom.xml delete mode 100644 alpine/java17/src/main/docker/Dockerfile create mode 100644 alpine/src/main/docker/Dockerfile rename alpine/{java17 => }/src/main/resources/README-custom-certs.md (100%) diff --git a/alpine/java11/pom.xml b/alpine/java11/pom.xml deleted file mode 100644 index dda07615..00000000 --- a/alpine/java11/pom.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - 4.0.0 - - - org.onap.ccsdk.distribution - distribution-alpine-root - 2.1.0-SNAPSHOT - - - distribution-j11-alpine - pom - - ccsdk-distribution :: alpine :: java11 - Creates base alpine Docker container - - openECOMP - - - - onap/ccsdk-alpine-j11-image - onap/integration-java11 - 12.0.0 - - - - - - org.codehaus.gmaven - groovy-maven-plugin - 2.1.1 - - - validate - - execute - - - ${basedir}/../../src/main/scripts/TagVersion.groovy - - - - - - maven-resources-plugin - 2.6 - - - copy-dockerfile - - copy-resources - - validate - - ${basedir}/target/docker-stage - - - src/main/docker - - Dockerfile - - true - - - - - - - - - - - - docker - - - - io.fabric8 - docker-maven-plugin - 0.34.0 - false - - - - ${image.name} - - try - true - ${basedir}/target/docker-stage - Dockerfile - - ${project.docker.latestminortag.version} - ${project.docker.latestfulltag.version} - ${project.docker.latesttagtimestamp.version} - - - - - ${docker.verbose} - ${docker.skip.push} - - - - build-push-images - - build - push - - - - - - - - - diff --git a/alpine/java11/src/main/docker/Dockerfile b/alpine/java11/src/main/docker/Dockerfile deleted file mode 100644 index 192d618b..00000000 --- a/alpine/java11/src/main/docker/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -# Base alpine with added packages needed for open ecomp -FROM ${base.image}:${base.image.version} -MAINTAINER CCSDK Team (onap-ccsdk@lists.onap.org) -USER root - -ARG HTTP_PROXY -ARG HTTPS_PROXY - -ENV HTTP_PROXY ${HTTP_PROXY} -ENV http_proxy ${HTTP_PROXY} -ENV HTTPS_PROXY ${HTTPS_PROXY} -ENV https_proxy ${HTTPS_PROXY} - -ENV JAVA_HOME /opt/java/openjdk - -# Add tools needed for OpenDaylight -RUN apk update && apk --no-cache add sudo bash iputils openssl git mysql-client nodejs npm python3 py3-pip graphviz unzip rsync nss - -USER onap diff --git a/alpine/java17/pom.xml b/alpine/java17/pom.xml deleted file mode 100644 index 02759728..00000000 --- a/alpine/java17/pom.xml +++ /dev/null @@ -1,136 +0,0 @@ - - - 4.0.0 - - - org.onap.ccsdk.distribution - distribution-alpine-root - 2.1.0-SNAPSHOT - - - distribution-j17-alpine - pom - - ccsdk-distribution :: alpine :: java17 - Creates base alpine Docker container - - openECOMP - - - - onap/ccsdk-alpine-j17-image - onap/integration-java17 - 12.0.0 - - - - - - org.codehaus.gmaven - groovy-maven-plugin - 2.1.1 - - - validate - - execute - - - ${basedir}/../../src/main/scripts/TagVersion.groovy - - - - - - maven-resources-plugin - 2.6 - - - copy-dockerfile - - copy-resources - - validate - - ${basedir}/target/docker-stage - - - src/main/docker - - Dockerfile - - true - - - - - - copy-certificates - - copy-resources - - validate - - ${basedir}/target/docker-stage - - - src/main/resources - - *.pem - *.md - - false - - - - - - - - - - - - docker - - - - io.fabric8 - docker-maven-plugin - 0.39.0 - false - - - - ${image.name} - - try - true - ${basedir}/target/docker-stage - Dockerfile - - ${project.docker.latestminortag.version} - ${project.docker.latestfulltag.version} - ${project.docker.latesttagtimestamp.version} - - - - - ${docker.verbose} - ${docker.skip.push} - - - - build-push-images - - build - push - - - - - - - - - diff --git a/alpine/java17/src/main/docker/Dockerfile b/alpine/java17/src/main/docker/Dockerfile deleted file mode 100644 index e1bebd20..00000000 --- a/alpine/java17/src/main/docker/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -# Base alpine with added packages needed for open ecomp -FROM ${base.image}:${base.image.version} -MAINTAINER CCSDK Team (onap-ccsdk@lists.onap.org) -USER root - -ARG HTTP_PROXY -ARG HTTPS_PROXY -ARG NO_PROXY - -ENV HTTP_PROXY ${HTTP_PROXY} -ENV http_proxy ${HTTP_PROXY} -ENV HTTPS_PROXY ${HTTPS_PROXY} -ENV https_proxy ${HTTPS_PROXY} -ENV NO_PROXY ${NO_PROXY} -ENV no_proxy ${NO_PROXY} - -ENV JAVA_HOME /opt/java/openjdk - -# Copy any certs -COPY *.md *.pem /etc/ssl/certs/ - -# Install certs -RUN update-ca-certificates - -RUN echo "http_proxy = $http_proxy" && echo "https_proxy = $https_proxy" && echo "no_proxy = $no_proxy" && echo "HTTP_PROXY = $HTTP_PROXY" && echo "HTTPS_PROXY = $HTTPS_PROXY" && echo "NO_PROXY = $NO_PROXY" - -# Add tools needed for OpenDaylight -RUN apk update && apk --no-cache add sudo bash iputils openssl git mysql-client nodejs npm python3 py3-pip graphviz unzip rsync nss - -USER onap diff --git a/alpine/pom.xml b/alpine/pom.xml index c31491c0..77d39e90 100644 --- a/alpine/pom.xml +++ b/alpine/pom.xml @@ -14,8 +14,164 @@ ccsdk-distribution :: alpine Creates OpenDaylight container - - java11 - java17 - + + eclipse-temurin + sudo bash iputils openssl git mysql-client nodejs npm python3 py3-pip graphviz unzip rsync nss + onap/ccsdk-alpine-j21-image + onap/ccsdk-alpine-j17-image + onap/ccsdk-alpine-j11-image + 21.0.6_7-jre-alpine + 17.0.14_7-jre-alpine + 11.0.26_4-jre-alpine + + + + + + org.codehaus.gmaven + groovy-maven-plugin + 2.1.1 + + + validate + + execute + + + ${basedir}/../src/main/scripts/TagVersion.groovy + + + + + + maven-resources-plugin + 2.6 + + + copy-dockerfile + + copy-resources + + validate + + ${basedir}/target/docker-stage + + + src/main/docker + + Dockerfile + + true + + + + + + copy-certificates + + copy-resources + + validate + + ${basedir}/target/docker-stage + + + src/main/resources + + *.pem + *.md + + false + + + + + + + + + + + + + + docker + + + + io.fabric8 + docker-maven-plugin + 0.39.0 + false + + + + ${alpinej21.image.name} + + try + true + ${basedir}/target/docker-stage + Dockerfile + + ${project.docker.latestminortag.version} + ${project.docker.latestfulltag.version} + ${project.docker.latesttagtimestamp.version} + + + ${openjdk21.image.version} + + + + + ${alpinej17.image.name} + + try + true + ${basedir}/target/docker-stage + Dockerfile + + ${project.docker.latestminortag.version} + ${project.docker.latestfulltag.version} + ${project.docker.latesttagtimestamp.version} + + + ${openjdk17.image.version} + + + + + ${alpinej11.image.name} + + try + true + ${basedir}/target/docker-stage + Dockerfile + + ${project.docker.latestminortag.version} + ${project.docker.latestfulltag.version} + ${project.docker.latesttagtimestamp.version} + + + ${openjdk11.image.version} + + + + + ${docker.verbose} + ${docker.skip.push} + + + + build-push-images + + build + push + + + + + + + + diff --git a/alpine/src/main/docker/Dockerfile b/alpine/src/main/docker/Dockerfile new file mode 100644 index 00000000..7e121926 --- /dev/null +++ b/alpine/src/main/docker/Dockerfile @@ -0,0 +1,47 @@ +# Base alpine with added packages needed for open ecomp +ARG OPENJDK_IMAGE_VERSION +FROM ${openjdk.image}:${OPENJDK_IMAGE_VERSION} + +LABEL maintainer="ONAP CCSDK team" +LABEL Description="Reference CCSDK JAVA image based on alpine" + +# Explicitly become root during build phase +USER root + +ENV JAVA_OPTS="-Xms256m -Xmx1g" +ENV JAVA_SEC_OPTS="" + +ARG HTTP_PROXY=${HTTP_PROXY} +ARG user=onap +ARG group=onap + +# Install additional tools +RUN apk add --no-cache openssl ca-certificates + +# Copy any certs +COPY *.md *.pem /etc/ssl/certs/ + +# Install certs +RUN update-ca-certificates + +# Add additional packages if defined +RUN test -n "${openjdk.additional.packages}" && \ + export http_proxy=${HTTP_PROXY} && export https_proxy=${HTTP_PROXY} && \ + export HTTP_PROXY=${HTTP_PROXY} && export HTTPS_PROXY=${HTTP_PROXY} && \ + apk update && \ + apk --no-cache add ${openjdk.additional.packages} && \ + unset http_proxy && unset https_proxy && unset HTTP_PROXY && unset HTTPS_PROXY \ + || echo "No additional packages to install" + +# Create a group and user +RUN addgroup -S $group && adduser -G $group -D $user && \ + mkdir /var/log/$user && \ + mkdir /app && \ + chown -R $user:$group /var/log/$user && \ + chown -R $user:$group /app + +# Tell docker that all future commands should be run as the onap user +USER $user +WORKDIR /app + +ENTRYPOINT exec java $JAVA_SEC_OPTS $JAVA_OPTS -jar /app/app.jar diff --git a/alpine/java17/src/main/resources/README-custom-certs.md b/alpine/src/main/resources/README-custom-certs.md similarity index 100% rename from alpine/java17/src/main/resources/README-custom-certs.md rename to alpine/src/main/resources/README-custom-certs.md diff --git a/dgbuilder-docker/src/main/docker/Dockerfile b/dgbuilder-docker/src/main/docker/Dockerfile index a26ed14f..9440eafb 100644 --- a/dgbuilder-docker/src/main/docker/Dockerfile +++ b/dgbuilder-docker/src/main/docker/Dockerfile @@ -5,6 +5,7 @@ USER root RUN addgroup -S dgbuilder && adduser -S dgbuilder -G dgbuilder \ && apk update && apk --no-cache add curl gcc g++ make ncurses yarn nodejs \ + && apk upgrade \ && node --version COPY --chown=dgbuilder:dgbuilder opt /opt diff --git a/odlsli/src/main/dc/docker-compose.yaml b/odlsli/src/main/dc/docker-compose.yaml index 18912f83..e8a6c962 100755 --- a/odlsli/src/main/dc/docker-compose.yaml +++ b/odlsli/src/main/dc/docker-compose.yaml @@ -2,7 +2,7 @@ version: '2.1' services: db: - image: mariadb:10.5 + image: mariadb:latest container_name: odlsli_db ports: - "3306" diff --git a/opendaylight/argon/argon-alpine/pom.xml b/opendaylight/argon/argon-alpine/pom.xml index 807b6ffc..68247342 100644 --- a/opendaylight/argon/argon-alpine/pom.xml +++ b/opendaylight/argon/argon-alpine/pom.xml @@ -148,7 +148,7 @@ io.fabric8 docker-maven-plugin - 0.34.0 + 0.39.0 false diff --git a/opendaylight/chlorine/chlorine-alpine/pom.xml b/opendaylight/chlorine/chlorine-alpine/pom.xml index bb6e3ed4..bdf59124 100644 --- a/opendaylight/chlorine/chlorine-alpine/pom.xml +++ b/opendaylight/chlorine/chlorine-alpine/pom.xml @@ -139,7 +139,7 @@ io.fabric8 docker-maven-plugin - 0.34.0 + 0.39.0 false diff --git a/src/main/yaml/docker-compose.yml b/src/main/yaml/docker-compose.yml index ffe7c7cd..10ed82ed 100644 --- a/src/main/yaml/docker-compose.yml +++ b/src/main/yaml/docker-compose.yml @@ -2,7 +2,7 @@ version: '2.1' services: db: - image: mariadb:10.5 + image: mariadb:latest container_name: ccsdk_db_container ports: - "3306" diff --git a/ubuntu/pom.xml b/ubuntu/pom.xml index 6dae2225..7ec94a8a 100644 --- a/ubuntu/pom.xml +++ b/ubuntu/pom.xml @@ -76,7 +76,7 @@ io.fabric8 docker-maven-plugin - 0.34.0 + 0.39.0 false -- 2.16.6