Gitlab-CI多行脚本和多脚本的区别
GitLab-CI 的新手,我正在尝试通过 Helm 在 Kubernetes 集群上进行部署。我有这个:
image: docker:stable
deploy:
stage: deploy
image:
name: alpine/helm:3.4.1
script:
- echo "Deploying to production"
- helm list --all-namespaces
它失败了:
Error: unknown command "sh" for "helm"
并且echo没有回显,但是,如果我要删除该echo行,则helmcmd 将成功执行。
我想我在问如何使多行脚本运行?gitlab-runner 如何执行script:数组中提供的一系列命令?
回答
script数组中的每个条目都在一个shshell 中运行。
sh -x 'echo "Deploying to production"'
alpine/helm您正在使用的图像包含一个入口点,helm
这意味着shgitlab 尝试运行的命令正在作为参数附加到入口点(例如helm sh -x 'echo "Deploying to production"')
覆盖入口点
deploy:
stage: deploy
image:
name: alpine/helm:3.4.1
entrypoint: [""]
script:
- echo "Deploying to production"