社内プロキシ(認証有)な環境でdockerのイメージをビルドしたい

【行いたい事】
・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%

●ゲストOS内npm用
dockerfileにプロキシを参照する記述を行う
docker-composeで渡された環境変数を利用できるので、それで設定する
registryのデフォルトがhttps~なので、http~にしないと動かない場合がある(串次第?)

RUN npm config set proxy $http_proxy
RUN npm config set https-proxy $https_proxy
RUN npm config set registry http://registry.npmjs.org/

【その他】
●利用したいnpmパッケージによっては、上記を設定しても動かない場合があるかも
私の場合は、JupyterLabでJavaScriptを利用するためのijavascriptが導入できなかった。

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に定義すれば解決できる
qiita.com

●プロキシの認証ユーザー名やパスワードのところにダブルクオーテーションが無いからエラーとか見かけた。
それを付ければ動くんだという回答と、それで動いた!ありがとう!というやりとりを見かけた。
よって、利用している社内プロキシによってはあり得るのかもしれない。
但し、私の環境では特にそんなことしなくても無事動いた。

【参考リンク】
future-architect.github.io
qiita.com

Node.js超入門[第3版]

Node.js超入門[第3版]

改訂版 Pythonユーザのための Jupyter[実践]入門

改訂版 Pythonユーザのための Jupyter[実践]入門