2017年5月1日月曜日

[Docker] ENV にコマンドの結果を使えない問題の回避策

Dockerfile の ENV で環境変数を設定する際に、コマンドの実行結果を利用したいと思ったのですが、
現在それはできないようです。

ENV NACL_SDK_ROOT $(find /nacl_sdk -maxdepth 1 -type d -name 'pepper_*')

回避策として、以下のようにしました。

.bashrc に export を書く
RUN echo 'export NACL_SDK_ROOT="$(find /nacl_sdk -maxdepth 1 -type d -name 'pepper_*')"' >> ~/.bashrc

こちらであれば、bash を起動すると環境変数が設定されます。

.profile に export を書く
RUN echo 'export NACL_SDK_ROOT="$(find /nacl_sdk -maxdepth 1 -type d -name 'pepper_*')"' >> ~/.profile

この場合は、ログイン時に環境変数が設定されるので、
docker run hoge bash するときに -l オプションもつけます。
docker run -it hoge bash -l

0 件のコメント:

コメントを投稿