インドカレーファンクラブ

パソコン、カメラ

【Docker】【RemoteDevelopment】DevContainerのbuild.argsに環境変数を渡したいけどうまくいかないときのメモ

はじめに

https://code.visualstudio.com/docs/remote/devcontainerjson-reference

VisualStudioのドキュメント的にはこんな感じでホスト側の環境変数をRemoteDevelopmentもといDevContainerのビルド引数に渡せるはずなのだ

"build": {
    "args": { 
        "HOGE": "${localEnv:HOGE}"
    }
},

けど、どうにもうまくいかないときのメモ

環境はmacOS Catalina 10.15.7

結論

.zshrcだの.zshenvに設定した後でDockerを再起動するといいかも?

解決

まずexport HOGE=xxxで一時的に環境変数を設定しても上記の方法ではビルド引数のlocalEnvとして拾ってもらえなかった

※ DevContainerというかRemoteDevelopmentを使わず普通にDockerをビルドするときにはexportでいいみたいだけど
参考:https://techblog.recochoku.jp/1979

なので結局.zshrcだの.zshenvだのに設定する
設定した後にはsource ~/.zshrcとかを忘れずに

そうしてもビルド引数に設定したlocalEnvに拾われず、でも以前から設定してあるUser(->${localEnv:User})なんかは普通に通る

最終的にDockerを再起動したらうまく拾われるようになった
根本的な解決になってない気がするけど動いたからまあいいや
誰かの参考になれば...