【发布时间】:2020-07-19 18:38:17
【问题描述】:
我们正在尝试使用 DOCKER_BUILDKIT 访问 Docker 的一些实验性功能。我们看到这在 Mac 和 Linux 上运行良好,只是在 Windows 上不行。知道如何让它在 Windows 上运行吗?
【问题讨论】:
-
您是从 D4W 构建 Windows 原生镜像还是 Linux 镜像?
标签: windows docker containers
我们正在尝试使用 DOCKER_BUILDKIT 访问 Docker 的一些实验性功能。我们看到这在 Mac 和 Linux 上运行良好,只是在 Windows 上不行。知道如何让它在 Windows 上运行吗?
【问题讨论】:
标签: windows docker containers
构建 Windows 映像的能力是 buildkit 的known limitation。如果您对该功能感兴趣,可以订阅路线图上的此问题并投票:
https://github.com/microsoft/Windows-Containers/issues/34
否则,对于构建 Linux 映像,buildkit 在 Docker for Windows 上的工作方式应该与在其他环境中一样,在 daemon.json 文件中设置功能标志的 DOCKER_BUILDKIT=1 环境变量(可从 Docker 配置)偏好 UI):
{ "features": { "buildkit": true } }
请注意,环境变量会覆盖引擎上的功能标志。您还可以使用 buildx,这是访问 buildkit 的另一种方法。这与直接访问 buildkit 具有相同的限制(主要是您无法构建 Windows 映像)。
【讨论】:
我在 powershell 中使用 docker,这对我有用:
# for docker build ...
$env:DOCKER_BUILDKIT = 1
# for docker-compose build ... (additional!)
$env:COMPOSE_DOCKER_CLI_BUILD = 1
这对我有用,无需更改设置(如其他一些答案中所述)。
【讨论】:
我知道现在回答已经很晚了,但是...... 迟到总比永远好。 首先,在 docker 桌面中,转到设置 >> docker engine 并确保您已按如下所示进行了所有设置
{
"registry-mirrors": [],
"insecure-registries": [],
"debug": true,
"experimental": false,
"features": {
"buildkit": true
}
}
“特征”:{ 我相信默认情况下“buildkit”:true}设置为true。 但是标记调试设置为真,而默认情况下它设置为假。 所以你可能不得不改变它。
其次。在文档中很难找到最明显的东西。 与 ubuntu 不同,您实际上并不在构建指令的开头添加 DOCKER_BUILDKIT=1。
就我个人而言,这让我非常困惑,因为我习惯于在 Linux 系统中添加这个短语。但在 Windows 中,如果启用如上所示的选项,buildkit 选项将始终默认触发。
【讨论】: