来自不安全注册表的 Dockerfile

fow*_*010 6 build docker dockerfile docker-registry

有没有办法从 Dockerfile 构建 docker 映像,该 Dockerfile 使用来自 Gitlab 托管的本地不安全注册表的基础映像。例如,如果我的 Dockerfile 是:

FROM insecure.registry.local:/mygroup/myproject/image:latest
Run Code Online (Sandbox Code Playgroud)

当我运行时,docker build .出现以下错误:

failed to solve with frontend dockerfile.v0: failed to create LLB definition:.... http: server gave HTTP response to HTTPS client
Run Code Online (Sandbox Code Playgroud)

当我与注册表交互并收到类似类型的 http/https 错误时,我会更改 docker 守护进程配置文件以包括:

   ...
   "insecure-registries" : ["insecure.registry.local"]
   ...
Run Code Online (Sandbox Code Playgroud)

当执行触发它的特定 docker 命令时,一切都会正常工作。我能够docker login insecure.registry.local成功运行。在 Dockerfile 本身中,有没有办法通过命令docker build或其他替代方法让它在FROM语句中从不安全的注册表中成功提取映像?

BMi*_*tch 8

根据您的版本,您可能需要将该方案包含在不安全的注册表定义中。较新版本的 buildkit 应该不会出现此问题,因此升级也可能有所帮助。

   ...
   "insecure-registries" : [
     "insecure.registry.local",
     "http://insecure.registry.local"
   ]
   ...
Run Code Online (Sandbox Code Playgroud)