はじめに
Dockerfileで環境変数を設定するときはENVを使う
Dockerfile Reference
ENV PATH $PATH:/path/to/bin
でも、なんかうまくいかなかったから他の方法でやってみたのでメモ
※ これから書く方法を使用しなくても、以下コマンドでPathを通せるとコメントいただきました。
. ~/.bashrc
環境
- Windows 10 Pro
- Docker for Windows
SourceでPathを通す
Dockerfileのビルドはbashではなくshで実行されるため、sourceコマンドを使おうとすると
source : not found
というエラーが出る。
shをbashへのシンボリックリンクで置き換えて、Dockerfileの終了時に元に戻すことで対応する。
例(pyenvへのpathを通して、pyenv経由でanacondaインストール)
RUN mv /bin/sh /bin/sh_tmp && ln -s /bin/bash /bin/sh
#pathを通す
RUN echo 'PATH="$PATH:/path/to/pyenv"' >> ~/.bashrc
#pathを読み込んで処理
RUN source ~/.bashrc && \
pyenv install anaconda3-5.0.1
RUN rm /bin/sh && mv /bin/sh_tmp /bin/sh