やりたいこと
- プロキシ環境下で
docker image build
したい-
yum
やapt
を利用してパッケージインストールする時に困る
-
- プロキシサーバーは、サーバー名で指定したい
-
Dockerfile
には、ENV http_proxy
とかENV https_proxy
とか書きたくない
--build-arg
を使う
解決方法は--build-arg
でhttp_proxy
やhttps_proxy
を、docker build
時に指定してあげればOKです。
例えば、こんな感じ。
$ docker image 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コンテナ内からプロキシサーバーの名前解決が面倒な場合。
--dns
オプションを使用してもよいのですが、それも面倒。
dig +short
でいいんではないでしょうか?
こんな感じで。
docker-proxy-build
#!/bin/bash
docker image 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-proxy-build
$ sudo cp docker-proxy-build /usr/local/bin
使う時。
$ docker-proxy-build -t charon/your-container-image:latest .