是否可以为concourse构建容器配置dns。
我知道docker-image-resource存在build_args:
参数,但我无法复制以下docker构建参数--dns=IP_ADDRESS...
有没有人在他们的pipe.yml中做过类似的事情?
答案 0 :(得分:2)
由于Docker缺乏支持,您不太可能通过Concourse设置此项。
您引用的--dns=IP_ADDRESS
选项是docker run
参数
docker build
命令不允许您更改在其下运行的构建容器的DNS设置。
此recent github issue链接到一系列相关问题:
您可以在Dockerfile的构建步骤中修改本地/etc/resolv.conf
:
FROM busybox:latest
RUN set -uex; \
echo "nameserver 8.8.8.8" > /etc/resolv.conf; \
cat /etc/resolv.conf; \
ping -c 4 google.com
RUN cat /etc/resolv.conf
虽然下一步的步骤会恢复正常。
您可以为所有未覆盖dns的容器配置Docker daemon with a custom DNS server。
dockerd --dns 8.8.8.8
如果您需要将构建与运行容器的运行不同,则可以使用自定义DNS运行Docker的特定“构建”实例。
在主机上编辑/etc/resolv.conf
以指向您的DNS。这显然会影响主机上运行的所有内容。
可以运行本地缓存服务器,该服务器可以配置为将您所需的请求转发到本地DNS服务器,并将其他任何内容转发到您的普通DNS服务器(类似于Docker在本地为容器DNS执行的操作)。