commit 8f0432d691a6936e874c258868c55bcc480298fb Author: Muhamad Aditya Prima Date: Sat Dec 14 04:46:52 2024 +0700 Initial commit, with alpine, ubi9 and ubi9-micro based diff --git a/.gitea/workflows/corretto-alpine-dockerio.yaml b/.gitea/workflows/corretto-alpine-dockerio.yaml new file mode 100644 index 0000000..d5eded9 --- /dev/null +++ b/.gitea/workflows/corretto-alpine-dockerio.yaml @@ -0,0 +1,88 @@ +name: Build and Push Alpine Corretto JDK Image to docker.io Registry +on: + push: + branches: + - master + +jobs: + build: + name: Build and push jdk corretto alpine based to docker.io + runs-on: ubuntu-latest + container: + image: ghcr.io/catthehacker/ubuntu:act-latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Login to docker.io Registry + uses: docker/login-action@v3 + with: + registry: docker.io + username: aprimediet + password: ${{ secrets.DOCKER_TOKEN }} + - name: Build and push jdk 8 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-alpine + build-args: | + JAVA_VERSION=8 + push: true + tags: | + aprimediet/jdk:8-corretto-alpine + aprimediet/jdk:8-alpine + - name: Build and push jdk 11 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-alpine + build-args: | + JAVA_VERSION=11 + push: true + tags: | + aprimediet/jdk:11-corretto-alpine + aprimediet/jdk:11-alpine + - name: Build and push jdk 17 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-alpine + build-args: | + JAVA_VERSION=17 + push: true + tags: | + aprimediet/jdk:17-corretto-alpine + aprimediet/jdk:17-alpine + - name: Build and push jdk 21 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-alpine + build-args: | + JAVA_VERSION=21 + push: true + tags: | + aprimediet/jdk:21-corretto-alpine + aprimediet/jdk:21-alpine + - name: Build and push jdk 22 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-alpine + build-args: | + JAVA_VERSION=22 + push: true + tags: | + aprimediet/jdk:22-corretto-alpine + aprimediet/jdk:22-alpine + - name: Build and push jdk 23 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-alpine + build-args: | + JAVA_VERSION=23 + push: true + tags: | + aprimediet/jdk:23-corretto-alpine + aprimediet/jdk:23-alpine + aprimediet/jdk:alpine diff --git a/.gitea/workflows/corretto-alpine-winter.yaml b/.gitea/workflows/corretto-alpine-winter.yaml new file mode 100644 index 0000000..cb8a093 --- /dev/null +++ b/.gitea/workflows/corretto-alpine-winter.yaml @@ -0,0 +1,88 @@ +name: Build and Push Alpine Corretto JDK Image to git.winteraccess.id Registry +on: + push: + branches: + - master + +jobs: + build: + name: Build and push jdk corretto alpine based to git.winteraccess.id + runs-on: ubuntu-latest + container: + image: ghcr.io/catthehacker/ubuntu:act-latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Login to git.winteraccess.id Registry + uses: docker/login-action@v3 + with: + registry: git.winteraccess.id + username: ${{ vars.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_TOKEN }} + - name: Build and push jdk 8 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-alpine + build-args: | + JAVA_VERSION=8 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:8-corretto-alpine + git.winteraccess.id/${{ gitea.repository }}:8-alpine + - name: Build and push jdk 11 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-alpine + build-args: | + JAVA_VERSION=11 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:11-corretto-alpine + git.winteraccess.id/${{ gitea.repository }}:11-alpine + - name: Build and push jdk 17 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-alpine + build-args: | + JAVA_VERSION=17 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:17-corretto-alpine + git.winteraccess.id/${{ gitea.repository }}:17-alpine + - name: Build and push jdk 21 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-alpine + build-args: | + JAVA_VERSION=21 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:21-corretto-alpine + git.winteraccess.id/${{ gitea.repository }}:21-alpine + - name: Build and push jdk 22 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-alpine + build-args: | + JAVA_VERSION=22 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:22-corretto-alpine + git.winteraccess.id/${{ gitea.repository }}:22-alpine + - name: Build and push jdk 23 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-alpine + build-args: | + JAVA_VERSION=23 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:23-corretto-alpine + git.winteraccess.id/${{ gitea.repository }}:23-alpine + git.winteraccess.id/${{ gitea.repository }}:alpine diff --git a/.gitea/workflows/corretto-ubi9-dockerio.yaml b/.gitea/workflows/corretto-ubi9-dockerio.yaml new file mode 100644 index 0000000..23335b2 --- /dev/null +++ b/.gitea/workflows/corretto-ubi9-dockerio.yaml @@ -0,0 +1,178 @@ +name: Build and Push UBI9 Corretto JDK Image to docker.io Registry +on: + push: + branches: + - master + +jobs: + build: + name: Build and push jdk corretto ubi9 based to docker.io + runs-on: ubuntu-latest + container: + image: ghcr.io/catthehacker/ubuntu:act-latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Login to docker.io Registry + uses: docker/login-action@v3 + with: + registry: docker.io + username: aprimediet + password: ${{ secrets.DOCKER_TOKEN }} + - name: Build and push jdk 8 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9 + build-args: | + JAVA_VERSION=8 + push: true + tags: | + aprimediet/jdk:8-corretto-ubi9 + aprimediet/jdk:8-ubi9 + aprimediet/jdk:8 + - name: Build and push jdk 11 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9 + build-args: | + JAVA_VERSION=11 + push: true + tags: | + aprimediet/jdk:11-corretto-ubi9 + aprimediet/jdk:11-ubi9 + aprimediet/jdk:11 + - name: Build and push jdk 17 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9 + build-args: | + JAVA_VERSION=17 + push: true + tags: | + aprimediet/jdk:17-corretto-ubi9 + aprimediet/jdk:17-ubi9 + aprimediet/jdk:17 + - name: Build and push jdk 21 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9 + build-args: | + JAVA_VERSION=21 + push: true + tags: | + aprimediet/jdk:21-corretto-ubi9 + aprimediet/jdk:21-ubi9 + aprimediet/jdk:21 + - name: Build and push jdk 22 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9 + build-args: | + JAVA_VERSION=22 + push: true + tags: | + aprimediet/jdk:22-corretto-ubi9 + aprimediet/jdk:22-ubi9 + aprimediet/jdk:22 + - name: Build and push jdk 23 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9 + build-args: | + JAVA_VERSION=23 + push: true + tags: | + aprimediet/jdk:23-corretto-ubi9 + aprimediet/jdk:23-ubi9 + aprimediet/jdk:23 + aprimediet/jdk:ubi9 + aprimediet/jdk:latest + build-micro: + name: Build and push jdk corretto ubi9-micro based to docker.io + runs-on: ubuntu-latest + needs: + - build + container: + image: ghcr.io/catthehacker/ubuntu:act-latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Login to docker.io Registry + uses: docker/login-action@v3 + with: + registry: docker.io + username: aprimediet + password: ${{ secrets.DOCKER_TOKEN }} + - name: Build and push jdk 8 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9-micro + build-args: | + JAVA_VERSION=8 + push: true + tags: | + aprimediet/jdk:8-corretto-ubi9-micro + aprimediet/jdk:8-ubi9-micro + - name: Build and push jdk 11 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9-micro + build-args: | + JAVA_VERSION=11 + push: true + tags: | + aprimediet/jdk:11-corretto-ubi9-micro + aprimediet/jdk:11-ubi9-micro + - name: Build and push jdk 17 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9-micro + build-args: | + JAVA_VERSION=17 + push: true + tags: | + aprimediet/jdk:17-corretto-ubi9-micro + aprimediet/jdk:17-ubi9-micro + - name: Build and push jdk 21 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9-micro + build-args: | + JAVA_VERSION=21 + push: true + tags: | + aprimediet/jdk:21-corretto-ubi9-micro + aprimediet/jdk:21-ubi9-micro + - name: Build and push jdk 22 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9-micro + build-args: | + JAVA_VERSION=22 + push: true + tags: | + aprimediet/jdk:22-corretto-ubi9-micro + aprimediet/jdk:22-ubi9-micro + - name: Build and push jdk 23 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9-micro + build-args: | + JAVA_VERSION=23 + push: true + tags: | + aprimediet/jdk:23-corretto-ubi9-micro + aprimediet/jdk:23-ubi9-micro + aprimediet/jdk:ubi9-micro diff --git a/.gitea/workflows/corretto-ubi9-winter.yaml b/.gitea/workflows/corretto-ubi9-winter.yaml new file mode 100644 index 0000000..1d1a8f8 --- /dev/null +++ b/.gitea/workflows/corretto-ubi9-winter.yaml @@ -0,0 +1,178 @@ +name: Build and Push UBI9 Corretto JDK Image to git.winteraccess.id Registry +on: + push: + branches: + - master + +jobs: + build: + name: Build and push jdk corretto ubi9 based to git.winteraccess.id + runs-on: ubuntu-latest + container: + image: ghcr.io/catthehacker/ubuntu:act-latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Login to git.winteraccess.id Registry + uses: docker/login-action@v3 + with: + registry: git.winteraccess.id + username: ${{ vars.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_TOKEN }} + - name: Build and push jdk 8 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9 + build-args: | + JAVA_VERSION=8 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:8-corretto-ubi9 + git.winteraccess.id/${{ gitea.repository }}:8-ubi9 + git.winteraccess.id/${{ gitea.repository }}:8 + - name: Build and push jdk 11 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9 + build-args: | + JAVA_VERSION=11 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:11-corretto-ubi9 + git.winteraccess.id/${{ gitea.repository }}:11-ubi9 + git.winteraccess.id/${{ gitea.repository }}:11 + - name: Build and push jdk 17 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9 + build-args: | + JAVA_VERSION=17 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:17-corretto-ubi9 + git.winteraccess.id/${{ gitea.repository }}:17-ubi9 + git.winteraccess.id/${{ gitea.repository }}:17 + - name: Build and push jdk 21 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9 + build-args: | + JAVA_VERSION=21 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:21-corretto-ubi9 + git.winteraccess.id/${{ gitea.repository }}:21-ubi9 + git.winteraccess.id/${{ gitea.repository }}:21 + - name: Build and push jdk 22 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9 + build-args: | + JAVA_VERSION=22 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:22-corretto-ubi9 + git.winteraccess.id/${{ gitea.repository }}:22-ubi9 + git.winteraccess.id/${{ gitea.repository }}:22 + - name: Build and push jdk 23 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9 + build-args: | + JAVA_VERSION=23 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:23-corretto-ubi9 + git.winteraccess.id/${{ gitea.repository }}:23-ubi9 + git.winteraccess.id/${{ gitea.repository }}:23 + git.winteraccess.id/${{ gitea.repository }}:ubi9 + git.winteraccess.id/${{ gitea.repository }}:latest + build-micro: + name: Build and push jdk corretto ubi9-micro based to git.winteraccess.id + runs-on: ubuntu-latest + needs: + - build + container: + image: ghcr.io/catthehacker/ubuntu:act-latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Login to git.winteraccess.id Registry + uses: docker/login-action@v3 + with: + registry: git.winteraccess.id + username: ${{ vars.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_TOKEN }} + - name: Build and push jdk 8 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9-micro + build-args: | + JAVA_VERSION=8 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:8-corretto-ubi9-micro + git.winteraccess.id/${{ gitea.repository }}:8-ubi9-micro + - name: Build and push jdk 11 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9-micro + build-args: | + JAVA_VERSION=11 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:11-corretto-ubi9-micro + git.winteraccess.id/${{ gitea.repository }}:11-ubi9-micro + - name: Build and push jdk 17 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9-micro + build-args: | + JAVA_VERSION=17 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:17-corretto-ubi9-micro + git.winteraccess.id/${{ gitea.repository }}:17-ubi9-micro + - name: Build and push jdk 21 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9-micro + build-args: | + JAVA_VERSION=21 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:21-corretto-ubi9-micro + git.winteraccess.id/${{ gitea.repository }}:21-ubi9-micro + - name: Build and push jdk 22 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9-micro + build-args: | + JAVA_VERSION=22 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:22-corretto-ubi9-micro + git.winteraccess.id/${{ gitea.repository }}:22-ubi9-micro + - name: Build and push jdk 23 corretto + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.corretto-ubi9-micro + build-args: | + JAVA_VERSION=23 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:23-corretto-ubi9-micro + git.winteraccess.id/${{ gitea.repository }}:23-ubi9-micro + git.winteraccess.id/${{ gitea.repository }}:ubi9-micro diff --git a/Dockerfile.corretto-alpine b/Dockerfile.corretto-alpine new file mode 100644 index 0000000..20c49e2 --- /dev/null +++ b/Dockerfile.corretto-alpine @@ -0,0 +1,58 @@ +ARG REGISTRY_URL=docker.io/aprimediet +ARG ALPINE_VERSION=3.21 + +FROM ${REGISTRY_URL}/alpine:${ALPINE_VERSION} +LABEL maintainer=" aprimediet@gmail.com" + +ARG JAVA_VERSION=8 + +USER root +WORKDIR /tmp + +# Set java environment +ENV JAVA_HOME=/usr/local/share/jdk +ENV PATH=${JAVA_HOME}/bin:$PATH + +# Default to UTF-8 file.encoding +ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' + +# Add nginx user and group +RUN addgroup -g 10001 java && \ + adduser -D -u 10001 -G java -s /sbin/nologin -h /app java + +# Install requirements +RUN --mount=type=cache,target=/var/cache/apk \ + apk add --update \ + # java.lang.UnsatisfiedLinkError: libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory + # java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager + # https://github.com/docker-library/openjdk/pull/235#issuecomment-424466077 + fontconfig ttf-dejavu \ + # gnupg required to verify the signature + gnupg \ + # utilities for keeping Alpine and OpenJDK CA certificates in sync + # https://github.com/adoptium/containers/issues/293 + ca-certificates p11-kit-trust \ + # locales ensures proper character encoding and locale-specific behaviors using en_US.UTF-8 + musl-locales musl-locales-lang \ + tzdata \ + # Contains `csplit` used for splitting multiple certificates in one file to multiple files, since keytool can + # only import one at a time. + coreutils \ + # Needed to extract CN and generate aliases for certificates + openssl; + +# Get amazon correto jdk flavor +ADD https://corretto.aws/downloads/latest/amazon-corretto-${JAVA_VERSION}-x64-alpine-jdk.tar.gz ./ + +# Extract to JAVA_HOME +RUN tar -xzvf ./amazon-corretto-${JAVA_VERSION}-x64-alpine-jdk.tar.gz -C /usr/local/share && \ + mv /usr/local/share/amazon* /usr/local/share/jdk && \ + rm -f ./amazon-corretto-${JAVA_VERSION}-x64-alpine-jdk.tar.gz && \ + chown -R java:java /usr/local/share/jdk && \ + rm -rf /var/cache/apk/* + +USER java + +WORKDIR /app + +CMD ["/usr/local/share/jdk/bin/java"] diff --git a/Dockerfile.corretto-ubi9 b/Dockerfile.corretto-ubi9 new file mode 100644 index 0000000..759ef2a --- /dev/null +++ b/Dockerfile.corretto-ubi9 @@ -0,0 +1,36 @@ +ARG REGISTRY_URL=docker.io/aprimediet +ARG UBI_VERSION=9.5 + +FROM ${REGISTRY_URL}/ubi9:${UBI_VERSION} +LABEL maintainer=" aprimediet@gmail.com" + +ARG JAVA_VERSION=8 + +USER root +WORKDIR /tmp + +# Set java environment +ENV JAVA_HOME=/usr/local/share/jdk +ENV PATH=${JAVA_HOME}/bin:$PATH + +# Add group and user nginx +RUN groupadd -g 10001 java && \ + useradd -u 10001 -g 10001 -m -d /app -s /sbin/nologin java && \ + dnf -y update + +# Get amazon correto jdk flavor +ADD https://corretto.aws/downloads/latest/amazon-corretto-${JAVA_VERSION}-x64-linux-jdk.tar.gz ./ + +# Extract to JAVA_HOME +RUN tar -xzvf ./amazon-corretto-${JAVA_VERSION}-x64-linux-jdk.tar.gz -C /usr/local/share && \ + mv /usr/local/share/amazon* /usr/local/share/jdk && \ + rm -f ./amazon-corretto-${JAVA_VERSION}-x64-linux-jdk.tar.gz && \ + chown -R java:java /usr/local/share/jdk && \ + dnf -y autoremove && \ + dnf -y clean all + +USER java + +WORKDIR /app + +CMD ["/usr/local/share/jdk/bin/java"] \ No newline at end of file diff --git a/Dockerfile.corretto-ubi9-micro b/Dockerfile.corretto-ubi9-micro new file mode 100644 index 0000000..1834584 --- /dev/null +++ b/Dockerfile.corretto-ubi9-micro @@ -0,0 +1,29 @@ +ARG REGISTRY_URL=docker.io/aprimediet +ARG UBI_VERSION=9.5 +ARG JAVA_VERSION=8 + +FROM ${REGISTRY_URL}/jdk:${JAVA_VERSION}-corretto-ubi9 AS builder +LABEL maintainer=" aprimediet@gmail.com" + +FROM ${REGISTRY_URL}/ubi9:${UBI_VERSION}-micro AS runtime +LABEL maintainer=" aprimediet@gmail.com" + +USER root + +WORKDIR /tmp + +# Set java environment +ENV JAVA_HOME=/usr/local/share/jdk +ENV PATH=${JAVA_HOME}/bin:$PATH + +# Create user and group +RUN echo "java:x:10001:" >> /etc/group && \ + echo "java:x:10001:10001:java:/app:/sbin/nologin" >> /etc/passwd && \ + echo "java:!!:20070::::::" >> /etc/shadow && \ + mkdir -p /app && \ + chown java:java /app + +COPY --from=builder /usr/local/share/jdk /usr/local/share/jdk + +USER java +WORKDIR /app \ No newline at end of file