gpt4 book ai didi

java - 将 Java 添加到 NGINX Docker 还是将 NGINX 添加到 Alpine 上的 Java Docker?

转载 作者:行者123 更新时间:2023-11-29 08:22:36 26 4
gpt4 key购买 nike

我需要构建一个 Docker 容器(感觉就像一个新手),它运行一个由 nginx Web 服务器作为前端的 Java 应用程序。由于不讨论的原因,我需要将它们放在一个容器中。

我想为此使用 Alpine。我发现两个图像都包含安装了 nginx 的 Alpine 和安装了 JDK 的 Alpine。我需要将两者结合起来。

我最好的行动方案是什么?从nginx容器开始加jdk还是从包含jdk的容器开始加nginx?

或者是否有组合 2 张图像的选项(这是个好主意)。

欢迎提供见解。

最佳答案

要创建组合图像,您可以遵循建议的路径之一:

  • 使用两个图像的设置步骤创建合并的 Dockerfile,并构建您自己的自定义图像。
  • 创建一个 Dockerfile 从图像 1(更“复杂”的图像)中拉取,并添加图像 2 所需的命令。

第二种方法是首选,因为您可以从已知良好的图像开始,而不必从头开始。另外,您可能只需要很少的改动。为此,两个图像应共享一个公共(public)基础图像,例如 alpine

检查 Nginx 和 Java OpenJDK Dockerfiles,您可以看到 Nginx Dockerfile相当复杂,有许多先决条件包和设置步骤,因此它会更适合基本图像。我的建议是,从 Nginx 基础镜像开始,在上面添加 Java。

如果您对 Alpile 存储库中可用的 JDK 版本感到满意,您的组合 Dockerfile 可能很简单:

FROM nginx:alpine

RUN apk add openjdk17

如果您需要一个特定的 Java 版本,它在 Alpine 存储库中不可用,通常需要下载压缩的 Alpine Java 发行版并解压缩它并相应地设置 JAVA_HOME。例如,请参阅 OpenJDK 13 Alpine Dockerfile .

关于java - 将 Java 添加到 NGINX Docker 还是将 NGINX 添加到 Alpine 上的 Java Docker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56286549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com