gpt4 book ai didi

docker - 如何在 docker 构建期间支持 Dockerfile 中的 http_proxy 或逻辑控制?

转载 作者:行者123 更新时间:2023-12-02 07:16:07 25 4
gpt4 key购买 nike

我在有防火墙的公司环境中工作,大多数情况下我需要代理来访问外部以更新软件包

虽然我想在公司内部/外部构建相同的 Dockerfile。

FROM ubuntu:latest
# for inside
RUN echo 'Acquire::http::Proxy "http://<proxy>";' > /etc/apt/apt.conf
# for external
#RUN echo '#Acquire::http::Proxy "http://<proxy>";' > /etc/apt/apt.conf
RUN apt-get update

如何在docker构建期间实现这一目标?

最佳答案

您不能在 Dockerfile 中包含逻辑,但是您的 Dockerfile 可以添加脚本(在 shell、python 等中)并在构建时运行该脚本。

请注意,这样做会使您的 Dockerfile 更难以被其他人理解,因为他们不会怀疑根据上下文构建不同的镜像。您最好在 Dockerfile 中的 RUN 命令之前写下清晰的注释。

构建镜像时的http代理

现在,如果您唯一的问题是代理,那么您不必在 Dockerfile 中处理此类内容。而是使用 HTTP_PROXY 环境变量集运行 Docker 守护程序。 (有关于此事的回答)

运行容器时的http代理

您可以通过使用 docker run 命令的 -e 选项将环境变量注入(inject)容器来告诉容器运行的进程使用 http 代理。请参阅容器中运行的命令的文档,以了解它是否遵循 HTTP_PROXY 环境变量。请注意,某些进程需要小写的 http_proxy 环境变量。

关于docker - 如何在 docker 构建期间支持 Dockerfile 中的 http_proxy 或逻辑控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24521535/

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