首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头Dind服务的设置代理

码头Dind服务的设置代理
EN

Stack Overflow用户
提问于 2020-03-31 06:57:44
回答 1查看 1.3K关注 0票数 1

我正在使用Gitlab CI/CD管道,并试图使发布工作顺利进行。

我的网络受到公司政策的保护,所以我需要使用代理。我已经为我的码头客户提供了代理信息。在执行docker build作业之前,它工作得很好。

我的出版工作是这样的:

代码语言:javascript
复制
  publish_test:
  stage: publish
  image: docker:19.03.1
  only:
    - test
  services:
    - docker:19.03.1-dind
  variables:
    IMAGE: ${IMAGE}
  before_script:
    - mkdir tmp
    - cp docker/Dockerfile build/libs/backend_v2-*.jar tmp
    - cd tmp
    - echo ${CI_REGISTRY_PASSWORD} | docker login ${CI_REGISTRY} -u ${CI_REGISTRY_USER} --password-stdin
  script:
    - docker pull ${IMAGE} || true
    - docker tag ${IMAGE} ${IMAGE}-backup || true
    - docker push ${IMAGE}-backup || true
    - echo $CI_REGISTRY
    - docker build -t ${IMAGE} .
    - docker push ${IMAGE}
  cache:
    key: ${CI_COMMIT_REF_NAME}
    policy: pull
    paths:
      - build/

问题就在这里:docker build -t ${IMAGE} .

由于连接错误,他无法提取Docker图像:

代码语言:javascript
复制
 Step 1/4 : FROM azul/zulu-openjdk-alpine:11
 Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
 ERROR: Job failed: exit code 1

到目前为止,我已经尝试过多种解决方案,其中没有一种对我有效:

  1. 试图将代理变量添加到Gitlab变量中,并将代理信任应用到以下工作中:

代码语言:javascript
复制
- export http_proxy=${HTTP_PROXY};
- export https_proxy=${HTTP_PROXY};
- export no_proxy=${NO_PROXY};

  1. 尝试使用build-arg params:

docker build --progress --build-arg ${HTTP_PROXY} --build-arg ${HTTPS_PROXY} --build-arg ${NO_PROXY} -t ${IMAGE} .

  1. 我在Gitlab Docs-https://docs.gitlab.com/runner/configuration/proxy.html#proxy-settings-when-using-dind-service中找到了我的案例。试着按照那里的指示去做,但没有用。

我怎么才能让它对我起作用?我需要为这个Docker构建作业设置代理设置,这样它就可以提取必要的Docker图像。任何帮助都很感激。

EN

回答 1

Stack Overflow用户

发布于 2020-03-31 08:24:47

  1. 您不需要再导出配置为GitLab变量的env。将脚本env | grep proxyenv | grep PROXY添加到管道中,以查看env是docker build --progress --build-arg http_proxy=${HTTP_PROXY} ...

,您的代理env看起来应该是docker build --progress --build-arg http_proxy=${HTTP_PROXY} ...

看起来,您使用了错误的构建参数,--build-arg ${HTTP_PROXY}应该是--build-arg http_proxy=${HTTP_PROXY}https_proxyno_proxy也是一样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60944984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档