Linux上でgitlab-runnerを使用してプロジェクトをローカルにビルドしようとしています。Gitlabランナーローカルビルド - 非TTYデバイスからのログイン
docker-build:
stage: build
image: docker:latest
script:
- docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY # user "gitlab-ci-token" is automatically created by GitLab
- docker build -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" target/
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME"
残念なことに私の試みは「ドッカーログイン」が非TTYデバイスからの対話型ログインを実行できないというエラーで終了します。
$ gitlab-ci-multi-runner exec docker --docker-privileged docker-build
Running with gitlab-ci-multi-runner 1.11.1 (a67a225)
on ()
Using Docker executor with image docker:latest ...
Starting service docker:dind ...
Pulling docker image docker:dind ...
Waiting for services to be up and running...
Pulling docker image docker:latest ...
Running on runner--project-1-concurrent-0 via vanqyard...
Cloning repository...
Cloning into '/builds/project-1'...
done.
Checking out 70187b2d as docker-basic-conf...
Skipping Git submodules setup
Checking cache for docker-build/docker-basic-conf...
Successfully extracted cache
$ docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY
Error: Cannot perform an interactive login from a non TTY device
ERROR: Job failed: exit code 1
FATAL: exit code 1
私の質問は、誰かがこの問題と、succesfunllyビルドを実行する方法につまずいていますか?
でコマンド
echo $CI_JOB_TOKEN
が含まれている場合、あなたの変数を出力しようとすることでこれを確認することができます。 'gitlab-ci-token'と' $ CI_JOB_TOKEN'の二重引用符については確かですか?たぶん資格情報がそれらのために誤解されているとログインが対話モードに戻って落ちる??? – Jawad引用符を取り除くと、 "flagに引数が必要です: 'p' in -p"、引用符の使用が正しいと推測しています。 – asdfgh