问题标签 [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.

0 投票
2 回答
9037 浏览

maven - 如何在 Docker 多阶段构建层中缓存 Maven 依赖项和插件?

我想在Docker Multi Stage Build的构建阶段的一层中缓存 Maven 依赖项。

我的 Dockerfile 如下所示:

```

我基于Docker Multi Stage Build 博客文章也可在 Github 上获得)中提供的示例构建了这个 Dockerfile 。

当我运行构建时,我看到的是两个步骤都下载的依赖项,而不是看到下载一次dependency:resolve然后重新使用的依赖项。package

有没有人有这个工作?我在这里做错了什么?

0 投票
1 回答
867 浏览

docker - 与 docker-compose 和多阶段 Dockerfile 共享构建逻辑

我正在使用docker-compose多阶段 Dockerfile 来构建和运行多个服务。这可行,但每个多阶段构建的“构建”部分主要是在每个服务的 Dockerfile 之间复制和粘贴。我想在一个地方减少复制和粘贴/集中通用构建逻辑。

阅读https://engineering.busbud.com/2017/05/21/going-further-docker-multi-stage-builds/我可以使用共享的构建步骤创建一个本地映像并让服务 Docker 文件依赖它,但我希望开发体验简单docker-compose up。创建本地构建映像意味着开发人员必须知道首先运行docker build [common_build_image],以便构建映像存在于本地,然后运行docker compose up以构建和运行依赖它的所有服务。

似乎没有办法将 Dockerfile 包含到另一个 Dockerfile 中。FROM似乎不支持本地路径。

有没有办法完成我想要的?当然,我可以使用 shell 脚本将所有内容联系在一起,但这基本上是多阶段构建首先要解决的问题。

0 投票
1 回答
4487 浏览

docker - docker multistage build 失败,带有多个 --build-arg

我正在使用这个 Dockerfile

但它失败了,因为它没有使用第二个 var IMAGE_TWO:

码头工人版本:

我的 Dockerfile 有问题还是 docker build 命令有问题?

0 投票
1 回答
656 浏览

docker - 多级 dockerfile - 缺少文件

我写了一个多阶段构建 dockerfile 试图遵循https://docs.docker.com/engine/userguide/eng-image/multistage-build/

我希望它在 /compiling 目录中构建一个可执行文件,将其复制到 /running 目录并在那里运行它。但是,我得到这个输出:

我不完全知道为什么会这样。你可以解释吗?如何修复?

0 投票
4 回答
23910 浏览

python - 如何使用多阶段构建减小 python (docker) 图像大小?

我正在寻找一种使用 python 和 Dockerfile 创建多阶段构建的方法:

例如,使用以下图像:

第一张图片:安装所有编译时要求,并安装所有需要的 python 模块

第二个图像:将所有编译/构建的包从第一个图像复制到第二个图像,没有编译器本身(gcc、postgers-dev、python-dev 等)

最终目标是拥有一个更小的图像,运行 python 和我需要的 python 包。

简而言之:我如何“包装”在第一个图像中创建的所有已编译模块(站点包/外部库),并以“干净”的方式将它们复制到第二个图像。

0 投票
1 回答
2407 浏览

java - 带有 postgres 和 java 的 Docker 容器

我想要一个带有 Java 的 Docker Postgres 容器。这是我的 Dockerfile:

我没有收到任何错误。但是当我执行java -version它说

找不到相关命令

我也试过这个:

但我得到了错误

我做错了什么?我该如何做到这一点?

0 投票
0 回答
30 浏览

docker - Docker 在 FROM 子句中区分多阶段与注册表图像

0 投票
1 回答
6119 浏览

docker - 使用多阶段 docker 文件输出多个图像

一个新的 docker 特性是在 dockerfile 中做这样的事情

据我所知,最后一个 FROM 语句标记了最终的输出图像。怎么可能从一个中间图像中得到两个最终图像?

不应丢弃测试、分期和产品。我想将它们签入存储库。

0 投票
2 回答
2437 浏览

python - 密码学 Python Docker 多阶段构建

我有一个在 docker 容器中运行的 Python 项目,我正在尝试转换为多阶段 docker 构建过程。我的项目依赖于密码学包。我的 Dockerfile 包括:

我尝试使用例如:

此过程适用于我测试过的许多其他 Python 要求,例如pycryptoand psutil,但会引发以下错误cryptography

显然,我希望不必在我的生产映像上安装任何编译器。我是否需要复制其他目录而不是/root/.cache?

0 投票
3 回答
7314 浏览

docker - 通过 FROM 从不同的本地目录导入 Dockerfile

我想创建一个多阶段构建过程,而每个 docker 文件都嵌套在本地自己的目录中,并为每个 Docker 文件添加了相应的依赖项。有没有办法从本地不同的目录导入 Docker 文件,而我可以使用 Docker 的FROM命令导入它,以在构建中创建多个阶段?

如果没有,我是否可以ADD将其他暂存的 Docker 文件放入当前的 Docker 文件中,然后FROM在 docker 容器中使用,在添加和使用后将其删除FROM

也许我正在考虑以错误的方式构建多阶段。

或者我可以简单地运行FROM {path/to/docker/locally}吗?这对我不起作用。