yum update / apk update / apt-get update 在代理后面不起作用

2024-04-30

我使用代理,无法构建 Docker 映像。

我尝试过FROM ubuntu, FROM centos and FROM alpine, but apt-get update / yum update / apk update failed.

我的主机操作系统是 Windows 10,因此我将 Docker 设置配置为使用我们的代理。

我还添加了

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

到我的 Dockerfile 但没有成功。

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

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

还有什么想法我还可以尝试吗?

Edit:

我还尝试添加我们的 DNS 服务器(列在ipconfig /all)进入Docker设置,但再次没有成功。

Edit2:我刚刚意识到我忘记了“http://“在我的 Ubuntu Dockerfile 中。添加此内容后,docker build现在在 ubuntu 上工作得很好 - 但是only对于Ubuntu。它仍然不起作用centos and alpine.

这是我的全部 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

将 http(s)_proxy 设置为系统范围变量是非常糟糕的主意。 您只需要使包管理器通过代理工作即可。 如果您仍然想设置 http(s)_proxy,请不要忘记 no_proxy,否则您的所有流量将尝试通过代理主机。 对于 ubuntu 我更喜欢使用这样的东西

FROM ubuntu
ARG PROXY=false
ARG PROXY_URL="http://proxy:8080"

RUN if [ "$PROXY" = true ] ; then echo 'Acquire::http::Proxy "'$PROXY_URL'";' >> /etc/apt/apt.conf ; fi && \
  apt-get update && \
  apt-get install -y vim

并在没有互联网连接的服务器上像这样执行,但本地执行无需代理即可工作

docker build -t ubuntu-with-proxy --build-arg PROXY=true .

Centos 还可以在 yum.conf 中处理代理配置

FROM centos
ARG PROXY=false
ARG PROXY_URL="http://proxy:8080"

RUN if [ "$PROXY" = true ] ; then echo 'proxy="$PROXY_URL";' >> /etc/yum.conf ; fi && \
  yum install -y vim

并在没有互联网连接的服务器上像这样执行,但本地执行无需代理即可工作

docker build -t centos-with-proxy --build-arg PROXY=true .

但我找不到高山这样的解决方案
我认为类似 Centos/Ubuntu 的东西可以在 Alpine 中实现this https://stackoverflow.com/a/11211792/11857414,但我还没有测试过。

FROM alpine
ARG PROXY=false
ARG PROXY_URL="http://proxy:8080"

RUN if [ "$PROXY" = true ] ; then echo "http_proxy = $PROXY_URL" > /etc/wgetrc && echo "use_proxy = on" >> /etc/wgetrc ; fi && \
  apk add -U vim

并再次执行

docker build -t alpine-with-proxy --build-arg PROXY=true .
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

yum update / apk update / apt-get update 在代理后面不起作用 的相关文章

随机推荐

  • jQuery 创建多维数组

    我花了很长时间试图弄清楚如何在 jQuery 中创建多维数组 我在循环之外实例化数组 在循环内部我想添加数组元素 i 0 loop start
  • 在 C 中释放 NULL 指针是一个好习惯吗? [复制]

    这个问题在这里已经有答案了 可能的重复 ptr 为 NULL 的 free ptr 是否会损坏内存 https stackoverflow com questions 1938735 does freeptr where ptr is nu
  • Libsourcey 缺少 -fPIC 编译错误

    我正在尝试运行 LibSourcey 以使用 Webrtc 流服务器 问题是我似乎无法让它发挥作用 我努力在我的 Ubuntu 16 04 上 cmake 该项目 cmake 文件中的正则表达式 但现在它已修复 我实际上遇到的问题是编译时的
  • 基本身份验证:是否可以像 getRemoteUser() 一样设置RemoteUser

    您好 我正在使用基本身份验证方法来保护我的 Web 应用程序中的某些页面 其中有指定的 url 模式如下
  • 起订量中的匹配设置问题

    我过去一周左右一直在使用 Moq 直到今天才遇到任何问题 我在获取时遇到问题VerifyAll 以正确匹配我的模拟的设置 我目前正在为我的应用程序的 API 编写单元测试 该应用程序的结构如下 API lt gt Service lt gt
  • android 中的 onSensorChanged 在模拟器中不断触发

    我正在使用 ACCELEROMETER 传感器 并已通过相同的方式注册了一个侦听器 mSensorManager SensorManager getSystemService Context SENSOR SERVICE mAccelera
  • gradle - 从 url 下载并解压文件

    从 url 下载和解压文件的正确 gradle 方法是什么 http 如果可能的话 我想防止每次运行任务时重新下载 在ant get可以通过以下方式实现skipexisting true 我当前的解决方案是 task foo ant get
  • Xcode 4.x - 使其指向有问题的崩溃行

    每次 Xcode 崩溃时 它都会指向 main m 上的这一行 int retVal UIApplicationMain argc argv nil AppController 我知道 Xcode 4 调试与 3 x 相比很糟糕 但是我如何
  • 带有 CompletableFuture 的 MDC 记录器

    我正在使用 MDC Logger 除了一种情况外 它对我来说非常适合 无论我们在代码中的何处使用 CompletableFuture 对于创建的线程 MDC 数据都不会传递到下一个线程 因此日志会失败 例如 在代码中我使用下面的代码片段来创
  • 使用适用于 IE7 和 IE8 的 jQuery 在 Facebox 中加载 FLV

    不用说 这在 Chrome Firefox 和 Safari 中完美运行 IE 任何版本 都是问题所在 客观的 我正在尝试加载 JWplayer 它会在 Facebox 弹出窗口中加载来自 S3 的 FLV jQuery document
  • 创建一个能够从容器注册表中提取的 Docker 就绪计算引擎

    我们使用 terraform 设置 GCE 实例 然后使用 ansible playbooks 来配置它们并将我们的服务转移到机器上 我正在我们的组织中运行一个项目 该项目需要从另一个项目中提取 Docker 映像 这些图像托管在另一个项目
  • 使用 Mercurial,我如何查看哪些更改尚未推送?

    我习惯了 git 你可以在其中运行 gitk 并得到如下内容 在这里您可以看到有一些更改需要推送到远程分支 或者 我可以使用git log decorate输出将是 b8c2926 refs heads next Update instru
  • FlexUnit ANT 任务挂起

    我正在使用 ANT 任务在构建服务器上运行 FlexUnit 当我从 Flash Builder 4 运行 Flex 单元测试时 它工作正常 但是当从 ANT 运行时 它会打开默认播放器 在我的例子中是 FireFox 成功运行 FU 但永
  • iPhone文本框显示光标

    我正在为 iPhone 开发一个计算器 设计类似于这样 问题是我无法在文本字段中显示光标 因为输入是通过图像等按钮进行管理的 此外 textField comeFirstResponder 不起作用 因为它显示默认键盘 所以我尝试 text
  • 如何让第一个字母像报纸风格一样推入段落

    我创建了一些 CSS 来处理段落中的第一个字母 看起来也更大 如何使第一个字母向下并向左推 这样它就不会高于该行本身 并在需要时将其他行缩进到右侧 见附图 text article color 000 text article first
  • 错误:“连接被拒绝:连接。验证连接属性

    与主机 localhost 端口 1433 的 TCP IP 连接失败 错误 连接被拒绝 连接 验证连接属性 确保 SQL Server 实例正在主机上运行并接受端口上的 TCP IP 连接 确保到该端口的 TCP 连接未被防火墙阻止 我已
  • 在 PATH 中找不到程序“make”

    我在 Eclipse 中遇到 程序 make 未在 PATH 中找到 错误 我检查了路径变量 C cygwin bin JAVA HOME bin ANT HOME bin ANDROID SDK tools ANDROID SDK pla
  • 像耐心/克朗代克纸牌游戏一样拖动节点

    我正在做克朗代克游戏 逻辑一切正常 我只是在使用 javafx 中的 UI 时遇到问题 我一直在尝试从 桌面堆 周围移动 拖动卡片 但没有达到预期的结果 我的卡片是一个 ImageView 里面有一个图像 这些卡片位于窗格内 Pane ta
  • mysql JOIN,这是如何解释的?

    如果我为 mysql 编写一条 sql 查询 并且只指定 JOIN 没有外连接 内连接 左连接等 那么默认的连接类型是什么 例如 SELECT count FROM Students p JOIN 班级 c ON p studentId c
  • yum update / apk update / apt-get update 在代理后面不起作用

    我使用代理 无法构建 Docker 映像 我尝试过FROM ubuntu FROM centos and FROM alpine but apt get update yum update apk update failed 我的主机操作系