1

我正在尝试构建 docker 映像并推送到 gitlab 注册表。

我正在使用 gitlab-shared runner。

npm install 没有问题,但是如何在下一个工作中构建 docker 镜像?

image: node:14.17.3

stages:
  - install
  - build


install_dependencies:
  stage: install
  tags:
    - gitlab-org-docker
  script:
    - pwd
    - npm install

build-job:
  stage: build
  image: docker
  tags:
    - gitlab-org-docker
  script:
    - echo "Compiling the code..."
    - echo "build"
    - docker build -t bmw-frontend-app .
    - docker ps

在此处输入图像描述

我忘了dind。dind 在 Docker 中是 Docker 的意思。

我成功如下。

image: docker:19.03.13

cache:
  key: ${CI_COMMIT_REF_SLUG}
  paths:
  - node_modules/
  - .next/

stages:
  - build

services:
  - docker:19.03.13-dind

build-job:
  stage: build
  before_script:
    - echo docker login $DOCKER_REGISTRY --username $DOCKER_REGISTRY_USER --password-stdin
  tags:
    - gitlab-org-docker
  script:
    - echo "Compiling the code..."
    - echo "build"
    - docker build -t registry.gitlab.com/areum.lee1/bmwgs_frontend . 
    - docker login registry.gitlab.com -u $DOCKER_REGISTRY_USER -p $DOCKER_REGISTRY_PASS
    - docker push registry.gitlab.com/areum.lee1/bmwgs_frontend

  1. 我将外部图像修改为图像:docker:19.03.12
  2. 附加服务块。

在此处输入图像描述

4

1 回答 1

0

你应该查看 GitLab 的关于使用 docker-in-docker 的文档,因为它有一个很棒的演练;在这种特殊情况下,您缺少实际执行 docker 命令的 dind 服务,这就是您收到连接错误的原因。

链接:https ://docs.gitlab.com/ee/ci/docker/using_docker_build.html#docker-in-docker-with-tls-enabled

于 2021-10-15T02:46:08.273 回答