【问题标题】:Dockerfile - Image FROM two different images?Dockerfile - 来自两个不同图像的图像?
【发布时间】:2021-01-23 13:59:28
【问题描述】:

请教关于 Dockerfile 的小问题。

目前,我有一个以基础映像 openjdk 开头的 Dockerfile。

FROM openjdk:7
FROM curl:7.74.0
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN javac Main.java
CMD ["java", "Main"]

这个打开的图片里面的curl版本太旧了7.29,我想用官方图片的curl:https://hub.docker.com/r/curlimages/curl

意思是,我想坚持使用我正在使用的当前 openjdk。

只需添加最新版本的 curl 图像即可。

我的第一次尝试是为官方 curl 图像再添加一个“FROM”,但导致错误(我相信这甚至不是正确的方向,我在第二个中添加的内容)

请问如何在我的一个Dockerfile中有两个(现有的openjdk + 最新版本的curl)?

谢谢

【问题讨论】:

  • 请提供重现问题所需的所有信息,例如带有两个 FROM 语句的 Dockerfile。
  • 你不需要添加另一个 curl 的 docker 镜像,只需在你的 openjdk 镜像中安装 curl 包。如果您可以分享您的 dockerfile 内容,那就太好了。
  • Docker: Combine multiple images 讨论了您在标题中提出的问题(简短回答:您不能)。在 Java 应用程序的上下文中,您可以使用本机 Java HTTP 库而不需要外部程序吗?
  • 使用 Dockerfile 内容更新的问题
  • 我只想要比已经存在的默认 curl 更新的东西

标签: docker curl


【解决方案1】:

这需要通过多阶段 Docker 来完成,正如 cmets 中提到的,它为我工作。

【讨论】: