wma*_*ash 6 bash gitlab gitlab-ci gitlab-ci-runner
我正在尝试使用共享运行程序来运行处理部署所需的环境变量的脚本。我的 YAML 配置中失败的部分是:
release:
stage: release
image: docker:latest
only:
- master
services:
- docker:dind
variables:
DOCKER_DRIVER: overlay
before_script:
- docker version
- docker info
- docker login -u ${CI_REGISTRY_USER} -p ${CI_BUILD_TOKEN} ${CI_REGISTRY}
script:
- dckstart=$(cat dockerfile-start)
- export > custom_vars
- chmod +x scripts/format-variables.sh
- bash scripts/format-variables.sh
- dckenv=$(cat custom_vars)
- dckfin=$(cat dockerfile-finish)
- echo -e "$dckstart\n$dckenv\n$dckfin" >> Dockerfile
- rm dockerfile-start dockerfile-finish custom_vars
- docker build -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest --pull .
- docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest
after_script:
- docker logout ${CI_REGISTRY}
Run Code Online (Sandbox Code Playgroud)
此步骤失败并给出错误:
$ chmod +x 脚本/format-variables.sh
$ bash 脚本/format-variables.sh
/bin/sh: eval: 第 101 行: bash: 未找到
我尝试过:
/bin/bash scripts/format-variables.sh
/bin/sh: eval: 第 114 行: /bin/bash: 未找到
cd scripts && ./format-variables.sh
/bin/sh: eval: 第 116 行: ./format-variables.sh: 未找到
--shell /bin/bash scripts/format-variables.sh
/bin/sh: eval: 第 114 行: --shell: 未找到
最后的尝试是我从文档中获取的一个想法。我没有指定要使用的共享运行程序,但我假设所使用的共享运行程序是基于 UNIX 的,就像所有其他 UNIX 命令一样。
是否可以通过共享运行器来完成此操作,或者我是否需要为此获得专用运行器?
注意:由于使用数组,我必须使用 Bash 来执行此脚本,而不是 Shell。如果我使用 Shell,我会出现这里提到的错误
该docker:latest图像不包含bash, 以节省空间。您可以安装它(请参阅如何将 bash 与基于 Alpine 的 docker 映像一起使用?)或使用不同的基础映像(例如 CentOS 或 Ubuntu)。
| 归档时间: |
|
| 查看次数: |
3757 次 |
| 最近记录: |