【问题标题】:DOCKER_BUILDKIT for Docker for Windows?适用于 Windows 的 Docker 的 DOCKER_BUILDKIT?
【发布时间】:2020-07-19 18:38:17
【问题描述】:

我们正在尝试使用 DOCKER_BUILDKIT 访问 Docker 的一些实验性功能。我们看到这在 Mac 和 Linux 上运行良好,只是在 Windows 上不行。知道如何让它在 Windows 上运行吗?

【问题讨论】:

  • 您是从 D4W 构建 Windows 原生镜像还是 Linux 镜像?
  • 对于其他任何来这个问题的人。根据docs buildkit 仅支持构建 linux 容器,但检查 link@BMitch 提供的,看起来这可能在未来实现

标签: windows docker containers


【解决方案1】:

构建 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 映像)。

【讨论】:

  • 我只能通过打开实验性功能来启用一些 buildkit 功能。它不适用于命令行或设置。
  • @RichardCrane Buildkit 在 docker 18.09 中正式发布
  • 在用户环境变量中添加 DOCKER_BUILDKIT=1 有效
【解决方案2】:

它适用于我使用适用于 Windows 的 Docker 桌面

尝试将以下内容添加到您的 daemon.json:

"features": { "buildkit": true }

【讨论】:

  • 这不起作用。在设置中设置 buildkit 在 Windows 中没有任何作用。我能够获得 DOCKER_BUILDKIT 功能来打开实验设置。但这与在命令行中使用 DOCKER_BUILDKIT 或在设置中设置 { "buildkit": true } 相去甚远。
【解决方案3】:

我在 powershell 中使用 docker,这对我有用:

# for docker build ...
$env:DOCKER_BUILDKIT = 1

# for docker-compose build ... (additional!)
$env:COMPOSE_DOCKER_CLI_BUILD = 1

这对我有用,无需更改设置(如其他一些答案中所述)。

【讨论】:

  • Docker 版本 19.03.12,内部版本 48a66213fe
  • 当您在 docker 文件中设置 ENV=.... 时,它会打印在日志中吗?
【解决方案4】:

我知道现在回答已经很晚了,但是...... 迟到总比永远好。 首先,在 docker 桌面中,转到设置 >> docker engine 并确保您已按如下所示进行了所有设置

{
  "registry-mirrors": [],
  "insecure-registries": [],
  "debug": true,
  "experimental": false,
  "features": {
    "buildkit": true
  }
}

“特征”:{ 我相信默认情况下“buildkit”:true}设置为true。 但是标记调试设置为真,而默认情况下它设置为假。 所以你可能不得不改变它。

其次。在文档中很难找到最明显的东西。 与 ubuntu 不同,您实际上并不在构建指令的开头添加 DOCKER_BUILDKIT=1。

就我个人而言,这让我非常困惑,因为我习惯于在 Linux 系统中添加这个短语。但在 Windows 中,如果启用如上所示的选项,buildkit 选项将始终默认触发。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-09
    • 2020-06-24
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    相关资源
    最近更新 更多