Docker从带有子目录的Github repo构建上下文



我正试图直接从github构建一个docker上下文,其中dockerfile被放置在一个子目录中。我得到错误failed to solve with frontend dockerfile.v0: failed to read dockerfile: failed to load cache key: subdir not supported yet。我在Mac上使用Docker Desktop 4.3.1(72247(,这似乎是一个与BuildKit和buildx有关的问题。我目前的buildx版本是github.com/docker/buildx v0.7.1,我在这篇文章中找到了它(https://www.docker.com/blog/engineering-update-buildkit-0-9-and-docker-buildx-0-6-releases/)从版本0.6开始支持git上下文中的子目录!有人有类似的问题吗?

我曾尝试关闭DOCKER_BuildKit=0和COMPOSE_DOCKER_CLI_BUILD=1的BuildKit,但这会导致我的组合堆栈中的其他容器出现问题,并且在构建后,一些临时容器没有被删除,最终会出现一长串已创建容器。

这是用docker build https://$GITHUB_TOKEN@github.com/<my-repo>#develop:mysqldocker-compose版本:1.29.2, build 5becea4cdocker compose版本v2.2.1进行测试的。它适用于放置在根目录中的dockerfile,因此访问级别有效,repo拼写正确。

我通过禁用Docker Desktop中的buildkit解决了这个问题。

  • 加载docker桌面
  • 转到"首选项">
  • 转到Docker引擎
  • 编辑设置json。我的
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": false
}
}
  • 应用并重新启动

最新更新