LoginSignup
0
0

【AWS】Amazon Linux 2023 DockerのPythonバージョンアップ

Posted at

はじめに

 Amazon Linux 2023 をベースとした Docker イメージ作成時に Python バージョンアップを行うための Dockerfile について書きます。
 Python バージョンアップ方法はこちらを参考にしました。

Dockerfileの書き方

まず、Amazon Linux 2023 の Docker コンテナの Python バージョンを確認します。 3.9.16 となっています。

[ec2-user@ip-172-31-13-197 ~]$ docker run -it amazonlinux:2023 /bin/bash
bash-5.2# python3 --version
Python 3.9.16
bash-5.2# python --version
bash: python: command not found

次に、以下の Dockerfile を作成します。Python は 3.11.0 をインストールします。

FROM amazonlinux:2023

# 必要なパッケージをインストール
RUN dnf install -y git tar gcc \
                   zlib-devel bzip2-devel readline-devel \
                   sqlite sqlite-devel openssl-devel \
                   tk-devel libffi-devel xz-devel

# pyenv により、使用する Python バージョンをインストールする
RUN curl https://pyenv.run | bash && \
    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc && \
    echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc && \
    echo 'eval "$(pyenv init -)"' >> ~/.bashrc && \
    source ~/.bashrc && \
    pyenv install 3.11.0 && \
    pyenv global 3.11.0

コンテナを作成し、Python バージョンを確認します。

[ec2-user@ip-172-31-13-197 ~]$ docker build -t demo .
[ec2-user@ip-172-31-13-197 ~]$ docker run -it demo /bin/bash
bash-5.2# python3 --version
Python 3.11.0
bash-5.2# python --version
Python 3.11.0

Pythonライブラリインストール

 イメージ作成時に Python のライブラリをインストールする方法について書きます。

 新たにファイルを作成します。

requirements.txt
numpy==1.26.2
PyYaml==6.0.1

 Dockerfileを次のように修正します。

FROM amazonlinux:2023

+ COPY ./requirements.txt ./

# 必要なパッケージをインストール
RUN dnf install -y git tar gcc \
                   zlib-devel bzip2-devel readline-devel \
                   sqlite sqlite-devel openssl-devel \
                   tk-devel libffi-devel xz-devel

# pyenv により、使用する Python バージョンをインストールする
RUN curl https://pyenv.run | bash && \
    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc && \
    echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc && \
    echo 'eval "$(pyenv init -)"' >> ~/.bashrc && \
    source ~/.bashrc && \
    pyenv install 3.11.0 && \
    pyenv global 3.11.0

+ # Pythonライブラリインストール
+ RUN /root/.pyenv/shims/pip install --no-cache-dir -r ./requirements.txt

参考記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0