Gitlab-CIでシェルスクリプトが起動できません!
標準エラー出力には not found
の文字。でも ls
コマンドで確認すると、確かにスクリプトは存在しています! なぜだ!?
job:
image: docker/git # このDockerイメージでコンテナを作り、下のスクリプトを実行
script:
- ls -a .gitlab-ci/docker-build-push
- .gitlab-ci/docker-build-push
$ ls -a .gitlab-ci/docker-build-push
.gitlab-ci/docker-build-push
$ .gitlab-ci/docker-build-push
/bin/sh: eval: line 129: .gitlab-ci/docker-build-push: not found
種明かし
実際のエラーの原因は「スクリプトが見つからない」こと、ではなく「スクリプトのshebangに指定した /bin/bash
が見つからない」ことでした。
docker/git
は Alpine Linux ベースなので、Bashは初期状態ではインストールされていないのです。
job:
image: docker/git # 実は Alpine Linux ベースだから Bash が入っていない
script:
- apk add bash # Bash をインストール
- .gitlab-ci/docker-build-push
お粗末様でした。