我现在已经尝试了好几天让跑步者在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给我的任何东西。
答案 0 :(得分:2)
您使用的Docker映像是Alpine映像,这是最小的Linux发行版。
Alpine Linux并未使用apt
进行软件包管理,而是使用apk
。
问题出在您尝试运行.gitlab-ci-yml
的{{1}}的{{1}}部分。
要解决您的问题,请将before_script
的使用替换为apt
:
apt
详细了解Alpine Linux软件包管理here。