gpt4 book ai didi

docker - yum 更新/apk 更新/apt-get 更新在代理后面不起作用

转载 作者:行者123 更新时间:2023-12-02 17:59:26 32 4
gpt4 key购买 nike

我在代理后面,我无法构建 Docker 镜像。

我试过 FROM ubuntu , FROM centosFROM alpine ,但是 apt-get update/yum update/apk update失败的。

我的主机操作系统是 Windows 10,所以我配置了我的 Docker 设置以使用我们的代理。

我还补充说

ENV http_proxy http://<PROXY>
ENV https_proxy http://<PROXY>

到我的 Dockerfile 但没有成功。

我还尝试将我的代理设置为 http://<USER>:<PASS>@<PROXY> ,但再次没有成功。

我能够拉取 Docker 镜像。当我将代理设置设置为无代理时,我无法提取图像,所以我猜我的代理 URL 是正确的。

任何想法我还能尝试什么?

编辑:

我还尝试将我们的 DNS 服务器(列在 ipconfig /all 下)添加到 Docker 设置中,但还是没有成功。

编辑 2:
我刚刚意识到我忘记了 Ubuntu Dockerfile 中的“http://”。添加后, docker build现在适用于 ubuntu - 但仅适用于 ubuntu。 它仍然不适用于 centosalpine .

这是我所有的 3 个 Dockerfile:

Ubuntu:
FROM ubuntu

ENV http_proxy "http://<MY-PROXY>"
ENV https_proxy "http://<MY-PROXY>"

RUN apt-get update

CentOS:
FROM centos

ENV http_proxy "http://<MY-PROXY>"
ENV https_proxy "http://<MY-PROXY>"

RUN yum update

Alpine :
FROM alpine

ENV http_proxy "http://<MY-PROXY>"
ENV https_proxy "http://<MY-PROXY>"

RUN apk update

错误消息:

CentOS:
Step 4/4 : RUN yum update
---> Running in 3deecb71823d
Loaded plugins: fastestmirror, ovl

One of the configured repositories failed (Unknown),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:

[...]

Cannot find a valid baseurl for repo: base/7/x86_64

Alpine :
Step 4/4 : RUN apk update
---> Running in 76c8579734cf
fetch http://dl-cdn.alpinelinux.org/alpine/v3.6/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.6/main: could not connect to server (check repositories file)
WARNING: Ignoring APKINDEX.84815163.tar.gz: No such file or directory
fetch http://dl-cdn.alpinelinux.org/alpine/v3.6/community/x86_64/APKINDEX.tar.gz
2 errors; 11 distinct packages available
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.6/community: could not connect to server (check repositories file)
WARNING: Ignoring APKINDEX.24d64ab1.tar.gz: No such file or directory
The command '/bin/sh -c apk update' returned a non-zero code: 2

最佳答案

对于 CentOS,我必须明确输入我的代理端口 80并删除 http:// -部分。
因此,对于 CentOS,一个可行的解决方案如下所示(如果代理在端口 80 上运行):

FROM centos

ENV http_proxy=<My-PROXY>:80
ENV https_proxy=<My-PROXY>:80

RUN yum update

Alpine 仍然缺失,看起来它需要额外的行:
ENV HTTP_PROXY_AUTH=basic:*:<USER>:<PASS>

但不适合我。可能是因为我的密码中有特殊字符,请参阅: https://github.com/gliderlabs/docker-alpine/issues/305

如果我找到解决方案,我会更新这个答案。

编辑:
对于 Alpine ,我使用这个:
FROM alpine

ENV http_proxy=http://<My-PROXY>:80/
ENV https_proxy=http://<My-PROXY>:80/

RUN apk update

关于docker - yum 更新/apk 更新/apt-get 更新在代理后面不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46930903/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com