如何将 gradle 添加到我的 alpine base docker 图像中

How to add gradle into my alpine base docker image

我使用 alpine 基础镜像创建了 docker 文件并构建了镜像。该图像包含 java:11 和 maven。 我也想包括 gradle。我该怎么做?

这是同样从 Whosebug 获取的 docker 文件。

from alpine:3.10

run apk --no-cache add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
run apk add bash vim curl wget jq docker git tar unzip bash-completion ca-certificates
run cd /opt && curl -sSl http://mirror.vorboss.net/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz | tar -xz



env PATH "$PATH:/opt/apache-maven-3.6.3/bin"
entrypoint ["/bin/bash"]

我刚刚从 here 偷了东西:

FROM alpine:3.10

ENV GRADLE_VERSION 3.2

RUN apk --no-cache add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
RUN apk add bash vim curl wget jq docker git tar unzip bash-completion ca-certificates
RUN cd /opt && curl -sSl http://mirror.vorboss.net/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz | tar -xz

RUN apk -U add --no-cache curl; \
    curl https://downloads.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip > gradle.zip; \
    unzip gradle.zip; \
    rm gradle.zip; \
    apk del curl; \
    apk update && apk add --no-cache libstdc++ && rm -rf /var/cache/apk/*

ENV PATH "$PATH:/opt/apache-maven-3.6.3/bin:/gradle-${GRADLE_VERSION}/bin/"
ENTRYPOINT ["/bin/bash"]

更简单的版本只使用当前最新的 Alpine,它也有 Maven 3.6.3 的包和比上面更新的 Gradle。当然,您可以尝试各种版本。

FROM alpine:3.12.3

RUN apk --no-cache add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
RUN apk add bash vim curl wget jq docker git tar unzip bash-completion ca-certificates gradle maven

ENTRYPOINT ["/bin/bash"]