当前位置: 首页 > 面试题库 >

在Dockerfile中使用代理运行apt-get

明安阳
2023-03-14
问题内容

我在代理后面,我需要通过安装一些东西apt-get

我最好的是这个

ARG PROXY
ENV http_proxy=$PROXY
ENV https_proxy=$PROXY
RUN apt-get update -y && apt-get -y install ...
ENV http_proxy=
ENV https_proxy=

问题是,我之后需要取消设置这些环境变量。

任何想法如何做到少于5层?


问题答案:

您需要使用构建时变量(–build-arg)。

该标志允许您传递在Dockerfile的RUN指令中像常规环境变量一样被访问的构建时变量。而且,这些值不会像ENV值那样保留在中间或最终图像中。

因此,您Dockerfile只有3行:

ARG http_proxy
ARG https_proxy
RUN apt-get update -y && apt-get -y install ...

您只需要定义构建时变量http_proxy和/或https_proxy在图像构建过程中:

$ docker build --build-arg http_proxy=http://<proxy_ip>:<proxy_port> --build-arg https_proxy=https://<proxy_ip>:<proxy_port> .


 类似资料:
  • 我对docker相当陌生,正试图通过写自己的图像来学习,目前,正在阅读docker in action(ISBN:1633430235) 我的代码: 图书代码: 然而,在这两个代码中,我都得到了一个无法定位的包eror和一个none-zeero代码: apt-get update'返回一个非零代码:100 这将成功地下载,但一旦它开始安装git,我得到同样的错误。这个 3)在https://doc

  • 请帮我做下面的事。我在一台共享服务器上安装了Jenkins。目前由多个团队使用,因此不允许在那里安装其他软件包/软件。每个团队都添加了专用的从节点,并根据需要进行配置。同样,我们有一个专用节点来运行我们的作业。(这也是我想运行我的工作的地方。) 我有 bitbucket 存储库,其中“Jenkinsfile”将包含部署步骤,而“Dockerfile”则希望从中创建容器并在其中运行部署步骤。 我想先

  • 问题内容: 我正在尝试在Dockerfile的构建过程中运行脚本。但这似乎不起作用。 我尝试过这种方式: 也这样: 并且也执行我正在运行的容器: 似乎没有任何作用。 你知道怎么做吗? 问题答案: 和是执行脚本的两种不同方式。 意味着它将创建一个中间容器,运行脚本并将该容器的新状态冻结在新的中间映像中。此后该脚本将不再运行:您的最终图像应该反映出该脚本的结果。 表示您的映像(尚未执行脚本)将创建一个

  • 问题内容: 我正在尝试对laravel应用程序进行Docker化。该应用程序已经构建并且在git中,但是我.gitignore我的供应商文件夹。我添加了一个Dockerfile,如下所示: 当我构建时,这似乎很棒。我看到依赖项已下载,我看到输出中正在生成自动加载文件。但是,一旦构建完成,vendor文件夹实际上就不存在了。我猜这都是在中间容器中完成的,然后将其删除?所以当我运行docker- co

  • 我有一个python代码和一个模型,是预先训练和有一个model.pkl文件与我在同一个目录中的代码我,现在我必须运行或部署这到aws sagemaker但没有得到任何解决方案由于aws sagemaker只支持两个命令,分别用于训练和部署。 目前,我正在使用命令“python filename.py”运行该程序,并且它正在成功运行。我希望在aws sagemaker上运行同样的程序。 有什么解决

  • 有一种方法可以在运行时对PhantomJS中的代理进行dinamily更改。下面是代码: 在中,我尝试: {“errormessage”:“找不到变量:幻影”,“request”:{“headers”:{“accept”:“application/json,image/png”,“connection”:“close”,“content-length”:“62”,“content-type”:“a