我在一个docker容器中有一个gitlab runner,如here所述 . 我已经设置了这样的ssh键:https://docs.gitlab.com/ee/ci/ssh_keys/

在我的package.json文件中,我有一个如下所示的配置:

"devDependencies": {
   "foo": "git+ssh://git@gitlab.foo.net:bar/baz.git#v0.1.0",
  }

我的.gitlab-ci.yml看起来像这样:

image: node:6.11.3
cache:
  paths:
  - node_modules/
stages:
  - install
install:
  stage: install
  before_script:
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
  - mkdir -p ~/.ssh
  - chmod 700 ~/.ssh
  script:
    - echo "Installing dependencies..."
    - yarn install
  tags:
    - debian

当我运行管道时,在尝试安装我的私有依赖项时,它在安装“脚本”阶段失败:

Command: git
Arguments: clone git@gitlab.foo.net:bar/baz.git /usr/local/share/.cache/yarn/v1/.tmp/asdfasd
Directory: /builds/my-directory
Output:
Cloning into '/usr/local/share/.cache/yarn/v1/.tmp/asdfasd'...
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

有趣的是,当我进入docker bash时,我可以克隆并轻松安装存储库 . 我猜这是gitlab-runner的一个问题 .