Bash 脚本 GitLab 共享运行器
Bash script GitLab shared runner
我正在尝试使用共享 运行ner 来 运行 处理部署所需的环境变量的脚本。我的 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}
此步骤失败并给出错误:
$ chmod +x scripts/format-variables.sh
$ bash scripts/format-variables.sh
/bin/sh: eval: line 101: bash: not found
我尝试过:
/bin/bash scripts/format-variables.sh
/bin/sh: eval: line 114: /bin/bash: not found
cd scripts && ./format-variables.sh
/bin/sh: eval: line 116: ./format-variables.sh: not found
--shell /bin/bash scripts/format-variables.sh
/bin/sh: eval: line 114: --shell: not found
最后的尝试是我从 the docs 那里得到的一个想法。我没有指定要使用的共享 运行ners,但我假设正在使用的那个是基于 UNIX 的,因为所有其他 UNIX 命令都可以工作。
是否可以通过共享 运行ner 来完成此操作,或者我是否需要为此获得专用的 运行ner?
注意:我必须为这个脚本使用 Bash 而不是 Shell 因为使用数组。如果我要使用 Shell,我会想出提到的错误
使用安装了 bash 的图像,例如 CentOS
或 Ubuntu
。
docker:latest
图片不包含 bash
,保存 space。您可以安装它(参见 )或使用不同的基础映像(如 CentOS 或 Ubuntu)。
我正在尝试使用共享 运行ner 来 运行 处理部署所需的环境变量的脚本。我的 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}
此步骤失败并给出错误:
$ chmod +x scripts/format-variables.sh
$ bash scripts/format-variables.sh
/bin/sh: eval: line 101: bash: not found
我尝试过:
/bin/bash scripts/format-variables.sh
/bin/sh: eval: line 114: /bin/bash: not found
cd scripts && ./format-variables.sh
/bin/sh: eval: line 116: ./format-variables.sh: not found
--shell /bin/bash scripts/format-variables.sh
/bin/sh: eval: line 114: --shell: not found
最后的尝试是我从 the docs 那里得到的一个想法。我没有指定要使用的共享 运行ners,但我假设正在使用的那个是基于 UNIX 的,因为所有其他 UNIX 命令都可以工作。
是否可以通过共享 运行ner 来完成此操作,或者我是否需要为此获得专用的 运行ner?
注意:我必须为这个脚本使用 Bash 而不是 Shell 因为使用数组。如果我要使用 Shell,我会想出提到的错误
使用安装了 bash 的图像,例如 CentOS
或 Ubuntu
。
docker:latest
图片不包含 bash
,保存 space。您可以安装它(参见