docker

プロキシ環境下でdocker buildしたい


やりたいこと


  • プロキシ環境下でdocker buildしたい



    • yumaptを利用してパッケージインストールする時に困る



  • プロキシサーバーは、サーバー名で指定したい


  • Dockerfileには、ENV http_proxyとかENV https_proxyとか書きたくない


--build-argを使う

解決方法は--build-arghttp_proxyhttps_proxyを、docker build時に指定してあげればOKです。

例えば、こんな感じ。

$ docker build --build-arg http_proxy=http://your-proxy-host:your-proxy-port --build-arg https_proxy=http://your-proxy-host:your-proxy-port -t charon/your-container-image:latest .

さらに、プロキシサーバーを名前で指定したい場合で、かつDockerコンテナ内からプロキシサーバーの名前解決が面倒な場合。

Container networking

--dnsオプションを使用してもよいのですが、それも面倒。

dig +shortでいいんではないでしょうか?

こんな感じで。

docker-build-proxy

#!/bin/bash

docker build --build-arg http_proxy=http://$(dig +short your-proxy-host):your-proxy-port --build-arg https_proxy=http://$(dig +short your-proxy-host):your-proxy-port "$@"

このスクリプトに、実行を付けて/usr/loca/binにでも置いておきましょう。

$ chmod a+x docker-build-proxy

$ sudo cp docker-build-proxy /usr/local/bin

使う時。

$ docker-build-proxy -t charon/your-container-image:latest .