From 0b7ca52ce56265fc69124ea975a3b7954652d09c Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Thu, 28 May 2026 15:27:11 +0700 Subject: [PATCH] Revert "chore: drop gradle-8 and oraclejdk-8 images" This reverts commit ff5e5f6a4292a0a2d6ec9f1beabe36db85c44123. --- .github/workflows/publish-gradle-8.yml | 63 ++++++++++++++++ .github/workflows/publish-oraclejdk-8.yml | 63 ++++++++++++++++ README.md | 17 +++++ gradle-8/Dockerfile | 88 +++++++++++++++++++++++ oraclejdk-8/Dockerfile | 32 +++++++++ 5 files changed, 263 insertions(+) create mode 100644 .github/workflows/publish-gradle-8.yml create mode 100644 .github/workflows/publish-oraclejdk-8.yml create mode 100644 gradle-8/Dockerfile create mode 100644 oraclejdk-8/Dockerfile diff --git a/.github/workflows/publish-gradle-8.yml b/.github/workflows/publish-gradle-8.yml new file mode 100644 index 0000000..3f70af3 --- /dev/null +++ b/.github/workflows/publish-gradle-8.yml @@ -0,0 +1,63 @@ +name: Publish Docker image + +on: + push: + branches: + - 'main' + paths: + - 'gradle-8/**' + - '.github/workflows/publish-gradle-8.yml' + workflow_dispatch: + +jobs: + push_to_registries: + name: Push Docker image to multiple registries + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + attestations: write + id-token: write + steps: + - name: Check out the repo + uses: actions/checkout@v5 + + - name: Log in to Docker Hub + uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Log in to the Container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: | + ${{ secrets.DOCKER_USERNAME }}/gradle-8 + ghcr.io/${{ github.actor }}/gradle-8 + tags: | + type=raw,value=latest + type=raw,value=8.13 + + - name: Build and push Docker images + id: push + uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 + with: + context: gradle-8 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + - name: Generate artifact attestation + uses: actions/attest-build-provenance@v3 + with: + subject-name: ghcr.io/${{ github.actor }}/gradle-8 + subject-digest: ${{ steps.push.outputs.digest }} + push-to-registry: true diff --git a/.github/workflows/publish-oraclejdk-8.yml b/.github/workflows/publish-oraclejdk-8.yml new file mode 100644 index 0000000..339f1a5 --- /dev/null +++ b/.github/workflows/publish-oraclejdk-8.yml @@ -0,0 +1,63 @@ +name: Publish Docker image + +on: + push: + branches: + - 'main' + paths: + - 'oraclejdk-8/**' + - '.github/workflows/publish-oraclejdk-8.yml' + workflow_dispatch: + +jobs: + push_to_registries: + name: Push Docker image to multiple registries + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + attestations: write + id-token: write + steps: + - name: Check out the repo + uses: actions/checkout@v5 + + - name: Log in to Docker Hub + uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Log in to the Container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: | + ${{ secrets.DOCKER_USERNAME }}/oraclejdk-8 + ghcr.io/${{ github.actor }}/oraclejdk-8 + tags: | + type=raw,value=latest + type=raw,value=8u201 + + - name: Build and push Docker images + id: push + uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 + with: + context: oraclejdk-8 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + - name: Generate artifact attestation + uses: actions/attest-build-provenance@v3 + with: + subject-name: ghcr.io/${{ github.actor }}/oraclejdk-8 + subject-digest: ${{ steps.push.outputs.digest }} + push-to-registry: true diff --git a/README.md b/README.md index 17f9c0b..b44fb04 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ Custom Docker images of legacy/discontinued software — built and published to | Image | Tag | GHCR package | Notes | |-------|-----|-------------|-------| | Couchbase 2.5 | `2.5.2` | [couchbase](https://github.com/tiennm99/docker-images/pkgs/container/couchbase) | Legacy NoSQL; no official image exists | +| Gradle 8 | latest | — | JDK 8 + Corretto base | +| Oracle JDK 8 | `8u201` | — | Archived Oracle JDK build | | Scribe 2.2 | `2.2` | [scribe](https://github.com/tiennm99/docker-images/pkgs/container/scribe) | Facebook's legacy log aggregation daemon | ## Naming convention @@ -39,6 +41,21 @@ Docker Compose example: [couchbase-2.5/docker-compose.example.yml](couchbase-2.5 - https://github.com/couchbase/docker/tree/14f9e5f37723ef15affa8cf3227b15409805f668/enterprise/couchbase-server/2.5.2 - https://github.com/couchbase/docker/tree/a9e69006c4dae3d6b8aa4055436c83e9cd51d9e4/enterprise/couchbase-server/2.5.2 +## Gradle 8 + +### Credits + +- https://gradle.org/releases/#8.13 +- https://github.com/gradle/docker-gradle/blob/8/jdk8-corretto/Dockerfile + +## Oracle JDK 8 + +### Credits + +- https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html +- https://github.com/oracle/docker-images/blob/main/OracleJava/8/jdk/Dockerfile.ol8 +- https://repo.huaweicloud.com/java/jdk/8u201-b09/ + ## Scribe 2.2 Facebook's legacy real-time log aggregation daemon. diff --git a/gradle-8/Dockerfile b/gradle-8/Dockerfile new file mode 100644 index 0000000..e3274ba --- /dev/null +++ b/gradle-8/Dockerfile @@ -0,0 +1,88 @@ +FROM ghcr.io/tiennm99/oraclejdk-8:8u201 + +CMD ["gradle"] + +ENV GRADLE_HOME=/opt/gradle + +RUN set -o errexit -o nounset \ + && sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*.repo \ + && sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*.repo \ + && yum install -y deltarpm \ + && yum install -y epel-release \ + && yum install -y \ + # common utilities + make \ + tar \ + \ + # Dockerfile dependencies + unzip \ + wget \ + which \ + \ + # Gradle dependencies + findutils \ + \ + # VCS dependencies + git \ + git-lfs \ + mercurial \ + subversion \ + && yum clean all \ + && rm -rf /var/cache/yum \ + \ + && echo "Testing common utilities" \ + && which awk \ + && which curl \ + && which cut \ + && which grep \ + && which gunzip \ + && which sha256sum \ + && which sed \ + && which tar \ + && which tr \ + && which unzip \ + && which wget \ + \ + && echo "Testing VCSes" \ + && which git \ + && which git-lfs \ + && which hg \ + && which svn + +RUN set -o errexit -o nounset \ + && echo "Adding gradle user and group" \ + && groupadd --system --gid 1000 gradle \ + && useradd --system --gid gradle --uid 1000 --shell /bin/bash --create-home gradle \ + && mkdir /home/gradle/.gradle \ + && chown --recursive gradle:gradle /home/gradle \ + && chmod --recursive o+rwx /home/gradle \ + \ + && echo "Symlinking root Gradle cache to gradle Gradle cache" \ + && ln --symbolic /home/gradle/.gradle /root/.gradle + +VOLUME /home/gradle/.gradle + +WORKDIR /home/gradle + +ENV GRADLE_VERSION=8.13 +ARG GRADLE_DOWNLOAD_SHA256=20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78 +RUN set -o errexit -o nounset \ + && echo "Downloading Gradle" \ + && wget --no-verbose --output-document=gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \ + \ + && echo "Checking Gradle download hash" \ + && echo "${GRADLE_DOWNLOAD_SHA256} *gradle.zip" | sha256sum --check - \ + \ + && echo "Installing Gradle" \ + && unzip gradle.zip \ + && rm gradle.zip \ + && mv "gradle-${GRADLE_VERSION}" "${GRADLE_HOME}/" \ + && ln --symbolic "${GRADLE_HOME}/bin/gradle" /usr/bin/gradle + +USER gradle + +RUN set -o errexit -o nounset \ + && echo "Testing Gradle installation" \ + && gradle --version + +USER root diff --git a/oraclejdk-8/Dockerfile b/oraclejdk-8/Dockerfile new file mode 100644 index 0000000..9548bba --- /dev/null +++ b/oraclejdk-8/Dockerfile @@ -0,0 +1,32 @@ +FROM centos:7 + +LABEL maintainer="miti99 " + +ENV LANG=en_US.UTF-8 +ENV JAVA_HOME=/usr/java/jdk-8 +ENV PATH=$JAVA_HOME/bin:$PATH +ENV JAVA_URL=https://repo.huaweicloud.com/java/jdk/8u201-b09/ + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +RUN set -eux; \ + ARCH="$(uname -m)" && \ + if [ "$ARCH" = "x86_64" ]; \ + then \ + JAVA_PKG="$JAVA_URL"jdk-8u201-linux-x64.tar.gz; \ + else \ + JAVA_PKG="$JAVA_URL"jdk-8u201-linux-i586.tar.gz; \ + fi && \ + JAVA_SHA256="$(curl -L "$JAVA_PKG".sha256)" ; \ + curl -L --output /tmp/jdk.tar.gz "$JAVA_PKG" && \ + echo "$JAVA_SHA256" */tmp/jdk.tar.gz | sha256sum -c -; \ + mkdir -p "$JAVA_HOME"; \ + tar --extract --file /tmp/jdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 && \ + rm -f /tmp/jdk.tar.gz; \ + ln -sfT "$JAVA_HOME" /usr/java/default; \ + ln -sfT "$JAVA_HOME" /usr/java/latest; \ + for bin in "$JAVA_HOME/bin/"*; do \ + base="$(basename "$bin")"; \ + [ ! -e "/usr/bin/$base" ]; \ + alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ + done; \ + java -Xshare:dump;