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"


以上是Gitlab-CI多行脚本和多脚本的区别的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>