行いたい事
- docker-composeを用いて、dockerfileのビルドをWindows10のPCで行いたい
- WIndows10のDocker Desktop for Windowsでコンテナを起動させたい
- 社内プロキシ(認証有)な環境で行いたい
事前設定・嵌った時の振り返りポイント
- Docker Desktop for Windowsのプロキシ設定を確認しておく
多分ビルドの時は直接アクセスするパターンが主ではあるが、コンテナ起動後の問題になるので
- 環境変数を確認しておく
http_proxyなど定義されているかどうか、それが想定通りなのかどうか
- Windows10のプロキシ設定
WinHTTPプロキシの設定方法 - maruko2 Note.
・docker-composeを実行する環境のプロキシ設定
上記を全て確認したのに、実行するコンソールの時だけ想定と狂っている事ないか
対応方法
ゲストOS, ゲストOS内pip用
docker-composeを実行する際に引数としてプロキシ情報を渡してあげる
大文字と小文字両方定義しておく方が無難
set USER=hoge set PASS=hogehoge set PROXY=http://%USER%:%PASS%@proxy.example.com:8888 docekr-compose build --build-arg HTTP_PROXY=%PROXY% --build-arg HTTPS_PROXY=%PROXY% --build-arg http_proxy=%PROXY% --build-arg https_proxy=%PROXY%
その他
利用したいnpmパッケージによっては、上記を設定しても動かない場合があるかも
私の場合は、JupyterLabでJavaScriptを利用するためのjavascriptが導入できなかった。
Step 15/21 : RUN npm install -g ijavascript ---> Running in f3dd86b4f755 npm ERR! code 1 npm ERR! path /usr/lib/node_modules/ijavascript/node_modules/zeromq npm ERR! command failed npm ERR! command sh -c node scripts/prebuild-install.js || (node scripts/preinstall.js && node-gyp rebuild) npm ERR! npm ERR! Error: connect ECONNREFUSED 52.192.72.89:443 npm ERR! at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16) { npm ERR! errno: -111, npm ERR! code:
それ以外は無事導入できている事や、
他のパッケージで上記エラーをパッケージ側で直している事から多分自力では無理かも。
github.com
ただ自分のせいで無い事が証明できないのでissue登録できない…
ホスト名が解決できない場合は、docker-composeに定義すれば解決できる
ダブルクオーテーションなどの方言
プロキシの認証ユーザー名やパスワードのところにダブルクオーテーションが無いからエラーとか見かけた。
それを付ければ動くんだという回答と、それで動いた!ありがとう!というやりとりを見かけた。
よって、利用している社内プロキシによってはあり得るのかもしれない。
但し、私の環境では特にそんなことしなくても無事動いた。