3

我有gitlab-runner一个docker执行人注册。当它运行时.gitlab-ci.yml

image: docker:latest

variables:
  DOCKER_BUILDKIT: "1" 

build:
  stage: build
  script:
    # There are additional flags cut out requiring BuildKit.
    - docker build . 

/var/run/docker.sock安装,它失败了:

ERROR: docker.io/docker/dockerfile:experimental not found
------
 > resolve image config for docker.io/docker/dockerfile:experimental:
------
failed to solve with frontend dockerfile.v0: failed to solve with frontend gateway.v0: docker.io/docker/dockerfile:experimental not found

当我包括

services:
  - docker:dind

.gitlab-ci.yml删除/var/run/docker.sock挂载(因此将守护进程更改为子容器而不是主机的),它成功了。

这是Dockerfile

# syntax=docker/dockerfile:experimental
...

是否与 BuildKit / 实验语法和使用主机的 docker 套接字不兼容?我让它通过使用自己的套接字与子容器一起工作dind,但我希望通过安装套接字来成功。

4

1 回答 1

0

通过遵循BuildKit 模式下的解决方案无法获取前端图像时,registry-mirrors能够得到这个工作。问题是 my 没有注册表镜像gitlab-runner,但是在执行作业之前执行以下操作就可以了:

docker pull docker/dockerfile:experimental 

# Replace with whatever image `Dockerfile` is based on.
docker pull ubuntu:latest 

registry-mirrors至于为什么这个问题与这个问题相关并且由同一件事解决,仍然处于黑暗之中,但现在这可以完成工作。

于 2020-08-02T10:12:08.910 回答