出会ったエラー
- いつものDockerfileを新しいサーバーでbuildしていたら、pipがnot foundになってこけた。
- こんなwarningも出ていた。
WARNING: `pyenv init -` no longer sets PATH.
Dockerfileの仕様
- ubuntu18.04, cuda10.2, zsh
- pyenv 1.2.27
fix
- 旧仕様でのDockerfile(pyenv部分の一部)
RUN curl https://pyenv.run | zsh && \
echo '' >> /root/.zshrc && \
echo 'export PATH="/root/.pyenv/bin:$PATH"' >> /root/.zshrc && \
echo 'eval "$(pyenv init -)"' >> /root/.zshrc && \
echo 'eval "$(pyenv virtualenv-init -)"' >> /root/.zshrc
- 新しい仕様
- 実質
pyenv init -
⇨pyenv init --path
? - (
.profile
をいじれ的なメッセージが出ていたけど従っても動かなかったので、メンテが行き届いてない感がある。)
- 実質
RUN curl https://pyenv.run | zsh && \
echo '' >> /root/.zshrc && \
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> /root/.zshrc && \
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /root/.zshrc && \
echo 'eval "$(pyenv init --path)"' >> /root/.zshrc && \
echo 'eval "$(pyenv virtualenv-init -)"' >> /root/.zshrc
- 新しい仕様でのpyenv部分の全体的には
RUN curl https://pyenv.run | zsh && \
echo '' >> /root/.zshrc && \
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> /root/.zshrc && \
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /root/.zshrc && \
echo 'eval "$(pyenv init --path)"' >> /root/.zshrc && \
echo 'eval "$(pyenv virtualenv-init -)"' >> /root/.zshrc
RUN source /root/.zshrc && \
pyenv install 3.8.0 && \
pyenv global 3.8.0 && \
pip install -U pip
- (ところで毎回
source /root/.zshrc
書かずに済む方法はないのかな…?)
参考
- (つい2,3日前の記事)