From eb028c8ee1b28c65cccf4ffd770d7dadb698bd17 Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Tue, 7 Oct 2025 21:49:30 +0700 Subject: [PATCH] feat(gradle): update dockerfile --- .github/workflows/publish-gradle-8.yml | 4 + README.md | 4 +- gradle-8/Dockerfile | 105 +++++++++++++++++++------ 3 files changed, 86 insertions(+), 27 deletions(-) diff --git a/.github/workflows/publish-gradle-8.yml b/.github/workflows/publish-gradle-8.yml index c15919c..3f70af3 100644 --- a/.github/workflows/publish-gradle-8.yml +++ b/.github/workflows/publish-gradle-8.yml @@ -6,6 +6,7 @@ on: - 'main' paths: - 'gradle-8/**' + - '.github/workflows/publish-gradle-8.yml' workflow_dispatch: jobs: @@ -41,6 +42,9 @@ jobs: 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 diff --git a/README.md b/README.md index 4532bc5..fd94bf6 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,8 @@ More options: https://github.com/tiennm99/docker-images/pkgs/container/docker-im ### Credits -- https://gradle.org/releases/#8.14.3 - +- https://gradle.org/releases/#8.13 +- https://github.com/gradle/docker-gradle/blob/8/jdk8-corretto/Dockerfile ## Oracle JDK 8 diff --git a/gradle-8/Dockerfile b/gradle-8/Dockerfile index 92f5d98..e3274ba 100644 --- a/gradle-8/Dockerfile +++ b/gradle-8/Dockerfile @@ -1,33 +1,88 @@ -FROM ghcr.io/tiennm99/docker-images/oraclejdk-8:8u201 +FROM ghcr.io/tiennm99/oraclejdk-8:8u201 -# Set environment variables -ENV GRADLE_HOME /opt/gradle -ENV PATH $GRADLE_HOME/bin:$PATH -ENV GRADLE_VERSION 8.14.3 +CMD ["gradle"] -# Install dependencies -RUN apt-get update && \ - apt-get install -y wget unzip && \ - rm -rf /var/lib/apt/lists/* +ENV GRADLE_HOME=/opt/gradle -# Download and install Gradle -RUN wget -O gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" && \ - mkdir -p /opt && \ - unzip -d /opt gradle.zip && \ - mv /opt/gradle-${GRADLE_VERSION} /opt/gradle && \ - rm gradle.zip +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 -# Create a non-root user -RUN groupadd -r gradle && useradd -r -g gradle gradle +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 -# Set ownership -RUN chown -R gradle:gradle /opt/gradle +VOLUME /home/gradle/.gradle -# Switch to the gradle user -USER gradle - -# Set working directory WORKDIR /home/gradle -# Default command -CMD ["gradle", "--version"] \ No newline at end of file +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