前回
- dockerのpyenvをインストールしたので、今回はpyenvで最新のpython3系をインストールしてみる
インストールできるバージョンの確認
- 下記のコマンドでインストールできるバージョンを確認する
# pyenv install --list
- 現在、何が最新のバージョンなのか確認するには公式サイトで確認する。現時点では
3.8.4
が最新バージョンのため、3.8..4をインストールする www.python.org
余談
pyenvではAnacondaやmicropythonなどもインストールすることが可能である。
pythonのインストール
# pyenv install 3.8.4 Downloading Python-3.8.4.tgz... -> https://www.python.org/ftp/python/3.8.4/Python-3.8.4.tgz Installing Python-3.8.4... Installed Python-3.8.4 to /root/.pyenv/versions/3.8.4
インストールされているバージョンの確認
# pyenv versions 3.8.4
インストールしているバージョンの適用
pyenv global 3.8.4
Dockerfileでの実装
/root/.pyenv/bin/pyenv
を実行する際にフルパスになってしまっている原因は下記の記述だとdocker buildしている段階ではpyenv
コマンドのパスが通っていないため、直接インストール先のパスを指定してコマンドを直接実行している。ただし、コンテナ起動後にログインしたときはpyenvとpythonコマンドがパスが通った状態で実行することが可能である。
FROM alpine:latest RUN apk update RUN apk add --no-cache git bash build-base libffi-dev openssl-dev bzip2-dev zlib-dev readline-dev sqlite-dev ENV ENV="/root/.ashrc" RUN git clone https://github.com/pyenv/pyenv.git ~/.pyenv RUN echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.ashrc RUN echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.ashrc RUN /root/.pyenv/bin/pyenv install 3.8.4 RUN echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.ashrc RUN /root/.pyenv/bin/pyenv global 3.8.4
動作確認
# docker exec -it backend /bin/ash / # python --version Python 3.8.4
次回
- djangoをインストールしてみたいとおもいます