如何将GitLab CE CI设置为跑步者的用户Docker映像

时间:2018-09-03 07:46:53

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

我现在已经尝试了好几天让跑步者在Docker容器上工作。我有一个安装了GitLab,gitlab-runner和docker的Debian运行系统。我想将docker用作跑步者的容器,因为shell执行器正在将所有东西安装在CI机器上...

到目前为止,我所做的是:我像GitLab CE文档中所述安装了docker并运行此命令:

function converter() {
  farenheit.value = (celcius.value * 1.8) + 32;

  alert(farenheit.value);
  $("#farenheit").val(farenheit.value);
}

然后,我使用此.gitlab-ci-yml创建了一个测试仓库,以查看它是否正常工作

gitlab-runner register -n \
  --url DOMAIN \
  --registration-token TOKEN \
  --executor docker \
  --description "docker-builder" \
  --docker-image "gliderlabs/alpine" \
  --docker-privileged

但是在GitLab CI控制台中出现错误:

variables:
  # GIT_STRATEGY: fetch # re-uses the project workspace
  GIT_CHECKOUT: "false" # don't checkout the working copy to a revision related to the CI pipeline
  GIT_DEPTH: "3"

cache:
  paths:
    - node_modules/

stages:
  - deploy

before_script:
  - apt-get update
  - apt-get install -y -qq sshpass
  - ls -la

# ======================= Jobs=======================
# Teporaly disable jobs by adding a . (dot) before the job name

ftp-upload:
  stage: deploy
  # environment: Production
  except: 
    - testing
  script:
    - rm ./package-lock.json
    - npm install
    - ls -la
    - sshpass -V
    - export SSHPASS=$PASSWORD
    - sshpass -e scp -o stricthostkeychecking=no -r . $USERNAME@$HOST:/Test
  only:
    - master

# ===================== ./Jobs ======================

我对这些Docker容器知之甚少,但它们看起来很适合重用而不修改我的CI系统。看起来这里正在安装另一个高山图像/容器,但是我是否没有说过GitLab运行程序使用现有的图像/容器?

希望有人可以更容易地向我解释这是如何工作的...我真的已经尝试过Google给我的任何东西。

1 个答案:

答案 0 :(得分:2)

您使用的Docker映像是Alpine映像,这是最小的Linux发行版。
Alpine Linux并未使用apt进行软件包管理,而是使用apk

问题出在您尝试运行.gitlab-ci-yml的{​​{1}}的{​​{1}}部分。

要解决您的问题,请将before_script的使用替换为apt

apt

详细了解Alpine Linux软件包管理here