我即將在Gitlab中與Golang軟件實(shí)現(xiàn)完整(無需測(cè)試階段)的持續(xù)集成。當(dāng)我嘗試在該docker login步驟中構(gòu)建 Docker 映像時(shí),它失敗了。這是我的.gitlab-ci.yml:stages: - buildvariables: REGISTRY: registry.gitlab.com GO_PROJECT: mysoftwarebuild_golang_binary: image: golang:latest stage: build before_script: - mkdir -p ${GOPATH}/src/${GO_PROJECT} - cp -r ${CI_PROJECT_DIR}/* ${GOPATH}/src/${GO_PROJECT}/ - cd ${GOPATH}/src/${GO_PROJECT} - go get script: - cd ${GOPATH}/src/${GO_PROJECT} - go buildbuild_docker_image: image: docker:latest stage: build script: - docker login $REGISTRY - docker build --no-cache -t ${REGISTRY}/me/${GO_PROJECT} . - docker push ${REGISTRY}/me/${GO_PROJECT}這是我收到的錯(cuò)誤:$ docker login $REGISTRYError: Cannot perform an interactive login from a non TTY device我認(rèn)為憑證將被提供到這個(gè) CI 過程中。顯然,事實(shí)并非如此。解決這個(gè)問題的最佳選擇是什么?
1 回答

臨摹微笑
TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
我的回答假設(shè)您使用 GitLab.com 作為 CI 和注冊(cè)表(基于registry.gitlab.com
上面.gitlab-ci.yml
的示例)。
您可以利用 GitLab CI 作業(yè)中可用的多個(gè)環(huán)境變量來向 GitLab 注冊(cè)表進(jìn)行身份驗(yàn)證:
docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
這$CI_REGISTRY_PASSWORD
是一個(gè)臨時(shí)令牌,僅在您的工作期間有效。
- 1 回答
- 0 關(guān)注
- 160 瀏覽
添加回答
舉報(bào)
0/150
提交
取消