我正在使用Gitlab CI/CD管道,并试图使发布工作顺利进行。
我的网络受到公司政策的保护,所以我需要使用代理。我已经为我的码头客户提供了代理信息。在执行docker build作业之前,它工作得很好。
我的出版工作是这样的:
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图像:
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到目前为止,我已经尝试过多种解决方案,其中没有一种对我有效:
- export http_proxy=${HTTP_PROXY};
- export https_proxy=${HTTP_PROXY};
- export no_proxy=${NO_PROXY};build-arg params:docker build --progress --build-arg ${HTTP_PROXY} --build-arg ${HTTPS_PROXY} --build-arg ${NO_PROXY} -t ${IMAGE} .
我怎么才能让它对我起作用?我需要为这个Docker构建作业设置代理设置,这样它就可以提取必要的Docker图像。任何帮助都很感激。
发布于 2020-03-31 08:24:47
env | grep proxy或env | 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_proxy和no_proxy也是一样。
https://stackoverflow.com/questions/60944984
复制相似问题