Docker:java:openjdk-8-jdk-alpine 映像缺少 javac 和 tools.jar

Far*_*jmi 5 java gradle docker

我正在使用以下 Dockerfile 创建一个 docker 映像:

FROM java:openjdk-8-jdk-alpine

USER root
RUN apk update && apk add docker

COPY . /liveboard-tests
WORKDIR /liveboard-tests
ENTRYPOINT ["./gradlew", ":integration-tests:test", "--tests", "*Foo*"]
Run Code Online (Sandbox Code Playgroud)

由于某种原因,docker容器不包含javac或tools.jar,我无法编译java代码。我尝试过各种其他基础图像,它们都有同样的问题。

任何人都可以建议一个防弹的最小 Docker 文件,它将为我提供一个能够使用 javac 并具有 tools.jar 的容器。TIA。

x80*_*486 2

FROM gradle:X.Y.Z-jdk8-branch由于您使用的是 Gradle,如果您使用\xe2\x80\x93 替换X.Y.Z为项目的 Gradle 版本以及branch,alpineslim,您会处于更好的位置;在这里查看可用的标签和/或版本。

\n\n

我知道这又是题外话,但是使用“Docker inside Docker”效果并不好,而且会给你带来一些惊喜。

\n

  • @FarrukhNajmi 记得使用选项 `-v gradle-cache:/home/gradle/.gradle` 运行容器,以便缓存依赖项并避免在每次编译时下载它们,正如[此处](https:// stackoverflow.com/questions/25873971/docker-cache-gradle-dependencies) (2认同)