From 838f6e96e0b8df3e4b5c4ac1af3509bedcc12cf1 Mon Sep 17 00:00:00 2001 From: "Simon C. Kessler" Date: Thu, 23 Apr 2026 10:37:52 +0200 Subject: [PATCH] =?UTF-8?q?Dateien=20f=C3=BCr=20docker=20image=20build=20&?= =?UTF-8?q?=20push=20angelegt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- quarkus-automaton/.vscode/settings.json | 3 ++- quarkus-automaton/Dockerfile | 17 +++++++++++++++++ quarkus-automaton/docker/.env-example | 10 ++++++++++ quarkus-automaton/docker/README.md | 17 +++++++++++++++++ quarkus-automaton/docker/build.sh | 20 ++++++++++++++++++++ 5 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 quarkus-automaton/Dockerfile create mode 100644 quarkus-automaton/docker/.env-example create mode 100644 quarkus-automaton/docker/README.md create mode 100644 quarkus-automaton/docker/build.sh diff --git a/quarkus-automaton/.vscode/settings.json b/quarkus-automaton/.vscode/settings.json index 0e14d8e..70236e5 100644 --- a/quarkus-automaton/.vscode/settings.json +++ b/quarkus-automaton/.vscode/settings.json @@ -1,3 +1,4 @@ { - "java.configuration.updateBuildConfiguration": "disabled" + "java.configuration.updateBuildConfiguration": "disabled", + "java.compile.nullAnalysis.mode": "disabled" } \ No newline at end of file diff --git a/quarkus-automaton/Dockerfile b/quarkus-automaton/Dockerfile new file mode 100644 index 0000000..9fd5a50 --- /dev/null +++ b/quarkus-automaton/Dockerfile @@ -0,0 +1,17 @@ +# --------------------------------------------------------------------------- +# Build-Stage: Maven-Build +# --------------------------------------------------------------------------- +FROM eclipse-temurin:25-jdk AS builder +WORKDIR /build +COPY . . +RUN ./mvnw package -DskipTests --no-transfer-progress + +# --------------------------------------------------------------------------- +# Runtime-Stage: Minimales JRE-Image +# --------------------------------------------------------------------------- +FROM eclipse-temurin:25-jre +WORKDIR /app +COPY --from=builder /build/target/quarkus-app/ ./ +EXPOSE 8080 +USER 1000 +ENTRYPOINT ["java", "-jar", "quarkus-run.jar"] \ No newline at end of file diff --git a/quarkus-automaton/docker/.env-example b/quarkus-automaton/docker/.env-example new file mode 100644 index 0000000..87ed75c --- /dev/null +++ b/quarkus-automaton/docker/.env-example @@ -0,0 +1,10 @@ +# --------------------------------------------------------------------------- +# Build- und Deploy-Konfiguration (keine Secrets — kann committet werden) +# --------------------------------------------------------------------------- + +REGISTRY=ocir.eu-frankfurt-1.oci.oraclecloud.com/frhqaxi5sgcg +IMAGE_NAME=container/automaton +IMAGE_TAG=1.0.0 + +REGISTRY_USER=frhqaxi5sgcg/ # frhqaxi5sgcg is the tenancy ID +REGISTRY_PW= diff --git a/quarkus-automaton/docker/README.md b/quarkus-automaton/docker/README.md new file mode 100644 index 0000000..ad84814 --- /dev/null +++ b/quarkus-automaton/docker/README.md @@ -0,0 +1,17 @@ +# Docker build (for arm nodes using qemu) + +- Install docker CLI https://daniel.es/blog/how-to-install-docker-in-wsl-without-docker-desktop/ +- For reference: Guide for setting up multiarch build support: https://docs.docker.com/build/building/multi-platform/ +- Configure qemu emulation for arm on x86_64: + - docker buildx create --name multi-arch-builder --use + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes +- docker buildx inspect --bootstrap +- Before building and pushing: Copy the .env-example file to .env and enter auth info inside it +- run ./build.sh (executes docker buildx build command to build an image on a x86 host that can run on an arm node, e.g.: + docker buildx build --platform linux/arm64 --load -t $IMAGE . --build-arg http_proxy=$http_proxy --build-arg https_proxy=$https_proxy --build-arg no_proxy=$no_proxy) + Multiarch images cannot be loaded into the deamon using --load but need to be pushed into a registry directly using --push or be exported to a file + +# Docker push image to OCI + + +- run . diff --git a/quarkus-automaton/docker/build.sh b/quarkus-automaton/docker/build.sh new file mode 100644 index 0000000..d28b527 --- /dev/null +++ b/quarkus-automaton/docker/build.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +source "${SCRIPT_DIR}/.env" + +IMAGE="${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}" + +echo "=== Image bauen & pushen: ${IMAGE} ===" +docker login -u $REGISTRY_USER -p $REGISTRY_PW https://$REGISTRY +docker buildx build \ + --platform linux/arm64,linux/amd64 \ + --push \ + -t $IMAGE \ + "${SCRIPT_DIR}/.." + # in case you use a proxy: + #--build-arg http_proxy=$http_proxy \ + #--build-arg https_proxy=$https_proxy \ + #--build-arg no_proxy=$no_proxy \ +echo "Fertig: ${IMAGE}"