簡體   English   中英

Docker-Compose - 在 go 測試中導入私有存儲庫

[英]Docker-Compose - Import private repositories in go test

我剛剛遇到了一個非常奇怪的問題,我真的不明白目前正在發生的事情..

我有一個項目,同時進行了一些 e2e 測試,一切正常。 出於某種原因,我不得不使用我的一些私有存儲庫(來自 gitlab),因為我開發了一些與數據庫和其他目的相關的層。

問題是,當我嘗試從 docker compose 命令運行go test時,它現在失敗並顯示以下消息:

e2e_tests_1 | FAIL       gitlab.com/foo-bar-group/awesome-api/tests/e2e [setup failed]
e2e_tests_1 | # gitlab.com/foo-bar-group/awesome-api/tests/e2e
e2e_tests_1 | internal/domain/models/file_infos.go:7:2: gitlab.com/emixam23-generic-utils/google-cloud-storage@vxxx: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /go/pkg/mod/cache/vcs/xxx: exit status 128:
e2e_tests_1 |    fatal: could not read Username for 'https://gitlab.com': terminal prompts disabled
e2e_tests_1 | FAIL

我有一個簡單的 docker 組合,它運行 3 個容器(mongodb、elasticsearch、自定義 golang docker 圖像)。 我的 Dockerfile 有一個小腳本,可以幫助我(並且正在工作)知道什么時候一切都准備好進行全面測試

Dockerfile

FROM golang:1.17.6

WORKDIR /app

ENV GO111MODULE on

# Download wait for it tool.
ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh /wait-for-it
RUN chmod +x /wait-for-it

docker-compose.tests-e2e.yml

version: "3.7"

services:

  mongodb_e2e_tests:
    image: mongo:5.0.4

  elasticsearch_e2e_tests:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0
    environment:
      - "discovery.type=single-node"

  e2e_tests:
    build:
      context: .
      dockerfile: Dockerfile.e2e_tests
    environment:
      # ...
    depends_on:
      - mongodb_e2e_tests
      - elasticsearch_e2e_tests
    volumes:
      - .:/app
    command: sh -c "/wait-for-it elasticsearch_e2e_tests:9200 -- /wait-for-it mongodb_e2e_tests:27017 -- go test ./tests/e2e/... -p 1 -v -count=1"

一切似乎都像以前一樣工作,直到go test./tests/e2e/... -p 1 -v -count=1從現在開始,在go 獲得時間,無法獲取我的私人存儲庫...

Thanks for any help.. I really did search to inject SSH, so setup git and everything but.. It seems to have something to do with docker-compose... not my Dockerfile image or my golang command

再次感謝..

最好的,

最大限度

你檢查過這個答案嗎?
https://stackoverflow.com/a/38237165/4486909

go get默認禁用“終端提示”。
這可以通過設置 git 的環境變量來改變:
env GIT_TERMINAL_PROMPT=1

嘗試將以下變量添加到您的 docker-compose env部分:
GIT_TERMINAL_PROMPT=1

此外,您可以通過以下方式獲得 go:
TERM=xterm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM