我有一个需要在 alpina:helm
上运行的包脚本图片 。我以前用过这个,但由于某种原因,这总是给我错误 - Error: unknown command "sh" for "helm"
package:
<<: *artifacts
stage: package
image: alpine/helm
variables:
GIT_STRATEGY: none
script:
- echo $VERSION
- helm package ./keycloak --app-version=$VERSION
artifacts:
paths:
- "*.tgz"
谁能告诉我这里有什么问题我不太确定。 Helm 命令应该按照我的假设运行,但不确定为什么不是。
最佳答案
如 docs 中所述,gitlab中的runner是这样启动的
image
中指定的 docker 容器并使用此容器的入口点 before_script
, script
和 after_script
成单个脚本 如果你看一下 alpine/helm 的入口点图像,你看到入口点是
helm
当容器启动时,它运行 helm。 gitlab 运行程序不需要入口点,或者入口点设置为启动 shell,因此您会得到 Error: unknown command "sh" for "helm"
因为没有正在运行的 shell。通过覆盖入口点,我们确保运行器在容器中找到一个可以执行脚本的外壳。
package:
stage: package
image:
name: alpine/helm
entrypoint: [""]
variables:
GIT_STRATEGY: none
script:
- echo $VERSION
- helm package ./keycloak --app-version=$VERSION
artifacts:
paths:
- "*.tgz"
编辑:通过再次阅读文档,我将入口点更改为 docker 17.06 及更高版本(
entrypoint: [""]
)的空入口点,因为这更简洁。
关于运行 helm 命令时出现 Gitlab 问题 - 错误 : unknown command "sh" for "helm",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67289837/