From 00580ed58ce18bec1974434ad897a58162a73cca Mon Sep 17 00:00:00 2001 From: Vincent Wiencek Date: Thu, 17 Jun 2021 15:53:40 +0200 Subject: [PATCH 01/11] add multi arch build --- amd64.dockerfile | 29 +++++++++++++++++++++++++++++ arm32v7.dockerfile | 29 +++++++++++++++++++++++++++++ multi-arch-manifest.yml | 11 +++++++++++ 3 files changed, 69 insertions(+) create mode 100644 amd64.dockerfile create mode 100644 arm32v7.dockerfile create mode 100644 multi-arch-manifest.yml diff --git a/amd64.dockerfile b/amd64.dockerfile new file mode 100644 index 00000000..e84aae31 --- /dev/null +++ b/amd64.dockerfile @@ -0,0 +1,29 @@ +FROM adoptopenjdk:11-jdk-hotspot as builder +ADD . /code/ +RUN \ + apt-get update && \ + apt-get install build-essential -y && \ + cd /code/ && \ + rm -Rf target node_modules && \ + chmod +x /code/mvnw && \ + sleep 1 && \ + JHI_DISABLE_WEBPACK_LOGS=true ./mvnw package -ntp -Pprod -DskipTests && \ + mv /code/target/*.jar /jhipster-control-center.jar && \ + apt-get clean && \ + rm -Rf /code/ /root/.m2 /root/.cache /tmp/* /var/lib/apt/lists/* /var/tmp/* + +FROM adoptopenjdk:11-jre-hotspot +ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \ + JAVA_OPTS="" \ + SPRING_PROFILES_ACTIVE=prod +EXPOSE 7419 +RUN apt-get update && \ + apt-get install -y curl iproute2 && \ + apt-get clean && \ + mkdir /target && \ + chmod g+rwx /target +CMD java \ + ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom \ + -jar /jhipster-control-center.jar + +COPY --from=builder /jhipster-control-center.jar . diff --git a/arm32v7.dockerfile b/arm32v7.dockerfile new file mode 100644 index 00000000..ec424844 --- /dev/null +++ b/arm32v7.dockerfile @@ -0,0 +1,29 @@ +FROM adoptopenjdk:11-jdk-hotspot-focal as builder +ADD . /code/ +RUN \ + apt-get update && \ + apt-get install build-essential -y && \ + cd /code/ && \ + rm -Rf target node_modules && \ + chmod +x /code/mvnw && \ + sleep 1 && \ + JHI_DISABLE_WEBPACK_LOGS=true ./mvnw package -ntp -Pprod -DskipTests && \ + mv /code/target/*.jar /jhipster-control-center.jar && \ + apt-get clean && \ + rm -Rf /code/ /root/.m2 /root/.cache /tmp/* /var/lib/apt/lists/* /var/tmp/* + +FROM adoptopenjdk:11-jre-hotspot +ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \ + JAVA_OPTS="" \ + SPRING_PROFILES_ACTIVE=prod +EXPOSE 7419 +RUN apt-get update && \ + apt-get install -y curl iproute2 && \ + apt-get clean && \ + mkdir /target && \ + chmod g+rwx /target +CMD java \ + ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom \ + -jar /jhipster-control-center.jar + +COPY --from=builder /jhipster-control-center.jar . diff --git a/multi-arch-manifest.yml b/multi-arch-manifest.yml new file mode 100644 index 00000000..22ce3dc2 --- /dev/null +++ b/multi-arch-manifest.yml @@ -0,0 +1,11 @@ +image: vwiencek/console +manifests: + - image: vwiencek/console:amd64 + platform: + architecture: amd64 + os: linux + - image: vwiencek/console:arm32v7 + platform: + architecture: arm + os: linux + variant: v7 \ No newline at end of file From 5ef99739661b12f40dbf996fea783117e393e950 Mon Sep 17 00:00:00 2001 From: Vincent Wiencek Date: Thu, 17 Jun 2021 16:12:33 +0200 Subject: [PATCH 02/11] add prehook --- hooks/post_push | 9 +++++++++ hooks/pre_build | 5 +++++ 2 files changed, 14 insertions(+) create mode 100644 hooks/post_push create mode 100644 hooks/pre_build diff --git a/hooks/post_push b/hooks/post_push new file mode 100644 index 00000000..1c4d1f31 --- /dev/null +++ b/hooks/post_push @@ -0,0 +1,9 @@ +#!/bin/bash + +# Use manifest-tool to create the manifest, given the experimental +# "docker manifest" command isn't available yet on Docker Hub. + +curl -Lo manifest-tool https://github.com/estesp/manifest-tool/releases/download/v0.9.0/manifest-tool-linux-amd64 +chmod +x manifest-tool + +./manifest-tool push from-spec multi-arch-manifest.yaml diff --git a/hooks/pre_build b/hooks/pre_build new file mode 100644 index 00000000..0a94f7e5 --- /dev/null +++ b/hooks/pre_build @@ -0,0 +1,5 @@ +#!/bin/bash + +# Register qemu-*-static for all supported processors except the +# current one, but also remove all registered binfmt_misc before +docker run --rm --privileged multiarch/qemu-user-static:register --reset From 58b82b28e48d3136d1c53a0a034268a9a0919c3a Mon Sep 17 00:00:00 2001 From: Vincent Wiencek Date: Thu, 17 Jun 2021 16:19:25 +0200 Subject: [PATCH 03/11] correct image name --- arm32v7.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arm32v7.dockerfile b/arm32v7.dockerfile index ec424844..5853dc4e 100644 --- a/arm32v7.dockerfile +++ b/arm32v7.dockerfile @@ -12,7 +12,7 @@ RUN \ apt-get clean && \ rm -Rf /code/ /root/.m2 /root/.cache /tmp/* /var/lib/apt/lists/* /var/tmp/* -FROM adoptopenjdk:11-jre-hotspot +FROM adoptopenjdk:11-jre-hotspot-focal ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \ JAVA_OPTS="" \ SPRING_PROFILES_ACTIVE=prod From 0188bbf47b708e5829e216d0a525f13ce4071042 Mon Sep 17 00:00:00 2001 From: Vincent Wiencek Date: Thu, 17 Jun 2021 22:17:11 +0200 Subject: [PATCH 04/11] correct file name --- multi-arch-manifest.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 multi-arch-manifest.yaml diff --git a/multi-arch-manifest.yaml b/multi-arch-manifest.yaml new file mode 100644 index 00000000..22ce3dc2 --- /dev/null +++ b/multi-arch-manifest.yaml @@ -0,0 +1,11 @@ +image: vwiencek/console +manifests: + - image: vwiencek/console:amd64 + platform: + architecture: amd64 + os: linux + - image: vwiencek/console:arm32v7 + platform: + architecture: arm + os: linux + variant: v7 \ No newline at end of file From e25ef13c853bb1e8160096516eeb0f87b330fa9e Mon Sep 17 00:00:00 2001 From: Vincent Wiencek Date: Thu, 17 Jun 2021 22:24:33 +0200 Subject: [PATCH 05/11] update --- arm64v8.dockerfile | 29 +++++++++++++++++++++++++++++ multi-arch-manifest.yaml | 7 ++++++- multi-arch-manifest.yml | 11 ----------- 3 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 arm64v8.dockerfile delete mode 100644 multi-arch-manifest.yml diff --git a/arm64v8.dockerfile b/arm64v8.dockerfile new file mode 100644 index 00000000..e84aae31 --- /dev/null +++ b/arm64v8.dockerfile @@ -0,0 +1,29 @@ +FROM adoptopenjdk:11-jdk-hotspot as builder +ADD . /code/ +RUN \ + apt-get update && \ + apt-get install build-essential -y && \ + cd /code/ && \ + rm -Rf target node_modules && \ + chmod +x /code/mvnw && \ + sleep 1 && \ + JHI_DISABLE_WEBPACK_LOGS=true ./mvnw package -ntp -Pprod -DskipTests && \ + mv /code/target/*.jar /jhipster-control-center.jar && \ + apt-get clean && \ + rm -Rf /code/ /root/.m2 /root/.cache /tmp/* /var/lib/apt/lists/* /var/tmp/* + +FROM adoptopenjdk:11-jre-hotspot +ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \ + JAVA_OPTS="" \ + SPRING_PROFILES_ACTIVE=prod +EXPOSE 7419 +RUN apt-get update && \ + apt-get install -y curl iproute2 && \ + apt-get clean && \ + mkdir /target && \ + chmod g+rwx /target +CMD java \ + ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom \ + -jar /jhipster-control-center.jar + +COPY --from=builder /jhipster-control-center.jar . diff --git a/multi-arch-manifest.yaml b/multi-arch-manifest.yaml index 22ce3dc2..6d0296e2 100644 --- a/multi-arch-manifest.yaml +++ b/multi-arch-manifest.yaml @@ -8,4 +8,9 @@ manifests: platform: architecture: arm os: linux - variant: v7 \ No newline at end of file + variant: v7 + - image: vwiencek/console:arm64v8 + platform: + architecture: arm64 + os: linux + variant: v8 \ No newline at end of file diff --git a/multi-arch-manifest.yml b/multi-arch-manifest.yml deleted file mode 100644 index 22ce3dc2..00000000 --- a/multi-arch-manifest.yml +++ /dev/null @@ -1,11 +0,0 @@ -image: vwiencek/console -manifests: - - image: vwiencek/console:amd64 - platform: - architecture: amd64 - os: linux - - image: vwiencek/console:arm32v7 - platform: - architecture: arm - os: linux - variant: v7 \ No newline at end of file From b22138938669dbf96158482b99c86c3071e162f5 Mon Sep 17 00:00:00 2001 From: wiencek Date: Thu, 17 Jun 2021 22:46:59 +0200 Subject: [PATCH 06/11] Update multi-arch-manifest.yaml --- multi-arch-manifest.yaml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/multi-arch-manifest.yaml b/multi-arch-manifest.yaml index 6d0296e2..aa2ca182 100644 --- a/multi-arch-manifest.yaml +++ b/multi-arch-manifest.yaml @@ -4,13 +4,8 @@ manifests: platform: architecture: amd64 os: linux - - image: vwiencek/console:arm32v7 - platform: - architecture: arm - os: linux - variant: v7 - image: vwiencek/console:arm64v8 platform: architecture: arm64 os: linux - variant: v8 \ No newline at end of file + variant: v8 From e0b33384aea715fd1d96679daa2b73d1a11b71d4 Mon Sep 17 00:00:00 2001 From: wiencek Date: Thu, 17 Jun 2021 22:47:53 +0200 Subject: [PATCH 07/11] Update multi-arch-manifest.yaml --- multi-arch-manifest.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/multi-arch-manifest.yaml b/multi-arch-manifest.yaml index aa2ca182..be690610 100644 --- a/multi-arch-manifest.yaml +++ b/multi-arch-manifest.yaml @@ -1,10 +1,10 @@ -image: vwiencek/console +image: jhipster/jhipster-control-center manifests: - - image: vwiencek/console:amd64 + - image: jhipster/jhipster-control-center:amd64 platform: architecture: amd64 os: linux - - image: vwiencek/console:arm64v8 + - image: jhipster/jhipster-control-center:arm64v8 platform: architecture: arm64 os: linux From 7b39211cbe1ce31b0ad9ff758ae3cd0568d62a3f Mon Sep 17 00:00:00 2001 From: wiencek Date: Thu, 17 Jun 2021 22:48:08 +0200 Subject: [PATCH 08/11] Delete arm32v7.dockerfile --- arm32v7.dockerfile | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 arm32v7.dockerfile diff --git a/arm32v7.dockerfile b/arm32v7.dockerfile deleted file mode 100644 index 5853dc4e..00000000 --- a/arm32v7.dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM adoptopenjdk:11-jdk-hotspot-focal as builder -ADD . /code/ -RUN \ - apt-get update && \ - apt-get install build-essential -y && \ - cd /code/ && \ - rm -Rf target node_modules && \ - chmod +x /code/mvnw && \ - sleep 1 && \ - JHI_DISABLE_WEBPACK_LOGS=true ./mvnw package -ntp -Pprod -DskipTests && \ - mv /code/target/*.jar /jhipster-control-center.jar && \ - apt-get clean && \ - rm -Rf /code/ /root/.m2 /root/.cache /tmp/* /var/lib/apt/lists/* /var/tmp/* - -FROM adoptopenjdk:11-jre-hotspot-focal -ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \ - JAVA_OPTS="" \ - SPRING_PROFILES_ACTIVE=prod -EXPOSE 7419 -RUN apt-get update && \ - apt-get install -y curl iproute2 && \ - apt-get clean && \ - mkdir /target && \ - chmod g+rwx /target -CMD java \ - ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom \ - -jar /jhipster-control-center.jar - -COPY --from=builder /jhipster-control-center.jar . From 4bca791bc7620fce4a095220d8cc94d39107ddcb Mon Sep 17 00:00:00 2001 From: wiencek Date: Thu, 17 Jun 2021 22:50:29 +0200 Subject: [PATCH 09/11] Update arm64v8.dockerfile --- arm64v8.dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arm64v8.dockerfile b/arm64v8.dockerfile index e84aae31..5853dc4e 100644 --- a/arm64v8.dockerfile +++ b/arm64v8.dockerfile @@ -1,4 +1,4 @@ -FROM adoptopenjdk:11-jdk-hotspot as builder +FROM adoptopenjdk:11-jdk-hotspot-focal as builder ADD . /code/ RUN \ apt-get update && \ @@ -12,7 +12,7 @@ RUN \ apt-get clean && \ rm -Rf /code/ /root/.m2 /root/.cache /tmp/* /var/lib/apt/lists/* /var/tmp/* -FROM adoptopenjdk:11-jre-hotspot +FROM adoptopenjdk:11-jre-hotspot-focal ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \ JAVA_OPTS="" \ SPRING_PROFILES_ACTIVE=prod From 48ae9aaf91824902e0077958b6c93ee2dc6373f8 Mon Sep 17 00:00:00 2001 From: wiencek Date: Thu, 17 Jun 2021 22:52:15 +0200 Subject: [PATCH 10/11] Delete amd64.dockerfile --- amd64.dockerfile | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 amd64.dockerfile diff --git a/amd64.dockerfile b/amd64.dockerfile deleted file mode 100644 index e84aae31..00000000 --- a/amd64.dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM adoptopenjdk:11-jdk-hotspot as builder -ADD . /code/ -RUN \ - apt-get update && \ - apt-get install build-essential -y && \ - cd /code/ && \ - rm -Rf target node_modules && \ - chmod +x /code/mvnw && \ - sleep 1 && \ - JHI_DISABLE_WEBPACK_LOGS=true ./mvnw package -ntp -Pprod -DskipTests && \ - mv /code/target/*.jar /jhipster-control-center.jar && \ - apt-get clean && \ - rm -Rf /code/ /root/.m2 /root/.cache /tmp/* /var/lib/apt/lists/* /var/tmp/* - -FROM adoptopenjdk:11-jre-hotspot -ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \ - JAVA_OPTS="" \ - SPRING_PROFILES_ACTIVE=prod -EXPOSE 7419 -RUN apt-get update && \ - apt-get install -y curl iproute2 && \ - apt-get clean && \ - mkdir /target && \ - chmod g+rwx /target -CMD java \ - ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom \ - -jar /jhipster-control-center.jar - -COPY --from=builder /jhipster-control-center.jar . From 19aa1b9be74f5fdf7d791786c77d7d5de9cc46c6 Mon Sep 17 00:00:00 2001 From: wiencek Date: Thu, 17 Jun 2021 22:52:21 +0200 Subject: [PATCH 11/11] Delete arm64v8.dockerfile --- arm64v8.dockerfile | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 arm64v8.dockerfile diff --git a/arm64v8.dockerfile b/arm64v8.dockerfile deleted file mode 100644 index 5853dc4e..00000000 --- a/arm64v8.dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM adoptopenjdk:11-jdk-hotspot-focal as builder -ADD . /code/ -RUN \ - apt-get update && \ - apt-get install build-essential -y && \ - cd /code/ && \ - rm -Rf target node_modules && \ - chmod +x /code/mvnw && \ - sleep 1 && \ - JHI_DISABLE_WEBPACK_LOGS=true ./mvnw package -ntp -Pprod -DskipTests && \ - mv /code/target/*.jar /jhipster-control-center.jar && \ - apt-get clean && \ - rm -Rf /code/ /root/.m2 /root/.cache /tmp/* /var/lib/apt/lists/* /var/tmp/* - -FROM adoptopenjdk:11-jre-hotspot-focal -ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \ - JAVA_OPTS="" \ - SPRING_PROFILES_ACTIVE=prod -EXPOSE 7419 -RUN apt-get update && \ - apt-get install -y curl iproute2 && \ - apt-get clean && \ - mkdir /target && \ - chmod g+rwx /target -CMD java \ - ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom \ - -jar /jhipster-control-center.jar - -COPY --from=builder /jhipster-control-center.jar .