问题标签 [docker-multi-stage-build]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - Docker 多阶段构建和测试结果 - 如何获得它们?
显然,我发现的所有关于多阶段构建的文章都涵盖了快乐的道路。
但是,当某些事情失败时,如何从构建器容器中获取测试结果(例如单元或验收测试)?
docker - Docker:构建完成后如何使用多阶段映像
设想
- 多阶段构建将多个 Dockerfile 部分组合成一个
- 中间阶段和最终阶段可以从上层阶段复制文件
- 建议最后阶段仅包含所需的二进制文件。
考虑到这些,我想建立以下
基础阶段的重用
- 我不想在中间阶段运行测试,而是在镜像之外运行它们,以便我可以重新排序测试序列并在管道层添加更多开关(Jenkins CI、Travis 等)
- 我希望能够使用构建的基本映像。
- 正如测试阶段所建议的那样,
Dockerfile.test
可以使用辅助设备。但是,我想维护一个包含所有阶段的单个 Dockerfile。
这是运行的要求
问题
- 目前支持吗?
- 有解决方法吗?
docker - 如何在不使用 Docker Compose 的情况下在 Dockerfile 中有两个图像?
如何在 dockerfile 中有两个图像并链接?
我不想使用 docker compose,我想要这样的东西
但我不知道如何加入图像
谢谢
c++ - 迁移 CMake 导致多阶段 Docker 构建
我有一个基于 CMake 的 C++ 项目,我需要将它集成到 CI/CD 管道中。管道有两个步骤,一个用于构建,另一个用于测试。在 Docker 容器中创建这个环境就像一个魅力,但会产生一个 2GB 的容器。所以我正在尝试实现一个多阶段的 Docker 构建,我将可执行文件复制到一个 Alpine 基础映像中。除了 cmake/ctest 功能外,所有这些都有效。我想公开将执行 CMake 生成目标的命令“make test”。
这是 CMake 为运行 ctest 创建的目标。
我无法弄清楚的问题是 ctest 从哪里获取测试配置。当我发出
在容器中它没有显示任何测试。
在 CMake 上寻找 SME 来教育我这应该如何工作。
docker - 为什么 ASP.NET Core Multi-Stage Dockerfile 使用 4 Stages
当您在 ASP.NET Core 站点上的 Visual Studio 中单击“添加 Docker 支持”时,这是默认的多阶段 Dockerfile。
为什么他们选择使用四个阶段,以阶段开始和结束base
。publish
另外,为什么要使用相同的build
基础图像创建舞台。为什么 Dockerfile 不是这样分三个阶段的:
我错过了一些优势吗?
docker - 在单个容器中加入 docker 图像
我有一个由前端、后端和 mongodb 数据库组成的应用程序,它们中的每一个都停靠在一个容器中。当我使用 docker compose 构建它们时,我的应用程序 (3) 中的图像数量与部件数量一样多。
有没有办法从这 3 个图像构建一个容器,从而构建一个图像?
谢谢
docker - Docker 多阶段构建不保留 RUN 命令的结果
我正在使用 docker-engine 17.05.0~ce-0~ubuntu-xenial 来构建这个 Dockerfile:
但是输出并不像预期的那样。我从 wordpress:apache 复制的代码已正确添加到 /var/www/html,但 wp-config.php 仅在实际构建步骤中出现,而不是在生成的图像中。我不明白我在这里做错了什么。在构建时,它会像这样结束:
为什么在第一次 RUN 中创建的 wp-config.php 在下一步中不可用,而我使用 COPY 命令放在那里的数据仍然存在?
(如果你想知道我想要实现什么,这只是一个 MCVE。)
docker - Docker 多阶段构建无法识别已安装的应用程序
该图像run
包含一个已安装的npm
. 尽管如此,npm install
返回错误:/bin/sh: 1: npm: not found
这怎么可能?我究竟做错了什么?
编辑:
作为对@BMitch 评论的回答,当我运行RUN
图像时,容器中的节点位于 PATH 上,我可以使用它。路径是/root/local/bin
。我已经附上了所有的 Dockerfile。
我有 3 个 docker 文件:
APP
你以前见过的那个。
跑
建造
编辑 2:
重要的是,如果我删除RUN npm...
命令,那么整个构建成功并且结果图像包含 npm 并且我可以使用它(我已经通过在交互模式下使用容器进行了验证)。
编辑 3:
这里有很多更简单的解决方案,可以立即试用:
结果是:cat: can't open '/root/test.txt': No such file or directory
docker - 多阶段构建映像不起作用,而正常构建则起作用
我有一个 Dockerfile,它从最新的 golang docker 镜像(现在是 1.10.3)构建一个 golang 项目(监听 Twitter 流并通过一些过滤器列出推文),如下所示:
当我运行由 docker build 命令创建的图像时,它运行没有问题。问题是图像大小约为 900MB。
当我尝试使用多阶段构建构建 docker 时,如下所示:
docker 映像已成功构建并运行,但它只是在发布推文时不向我显示推文,而且它也没有显示任何错误,这是最令人困惑的部分。即使我 ssh 进入正在运行的容器并 ping google,它也会显示应有的一切。
任何人都有一些提示我可以如何调试这个问题,或者从正在运行的 Docker 映像中获取更多日志?