Gitlab CI-为什么作业的“图像”设置会影响全局的“ before_script”和“ image”?

时间:2019-06-11 22:33:29

标签: docker gitlab gitlab-ci gitlab-ci-runner

根据docs

配置的现有管道

image: docker:stable

variables:
   DOCKER_HOST: tcp://docker:2375/
   DOCKER_DRIVER: overlay2

services:
  - docker:dind

before_script:
  - docker version

stages:
  - test

test:lint:
  stage: test
  tags:
    - docker
  cache:
    paths:
    - node_modules/
  script:
    - npm i -g yarn
    - yarn
    - yarn lint

此处的管道输出崩溃

$ npm i -g yarn
/bin/sh: eval: line 85: npm: not found

但是我从before_script部分成功获取了docker信息,因为我已经在全球范围内创建了docker服务

然后,我要编辑失败的作业,并使用node将其基于图像,在这里我可以使用npm命令。

新管道

image: docker:stable

variables:
   DOCKER_HOST: tcp://docker:2375/
   DOCKER_DRIVER: overlay2

services:
  - docker:dind

before_script:
  - docker version

stages:
  - test

test:lint:
  image: node:10.13-alpine
  stage: test
  tags:
    - docker
  cache:
    paths:
    - node_modules/
  script:
    - npm i -g yarn
    - yarn
    - yarn lint

并得到before_script

的错误
/bin/sh: eval: line 83: docker: not found
$ docker version

为什么会出现这种情况?在docs中,我找不到有关此行为的信息

0 个答案:

没有答案