【AWS】CodeBuild で Python のバージョンを切り替える

■ はじめに

AWS CodeBuild で管理されるDocker イメージのPython バージョンは
固定されている。(以下の公式サイトを参照)

https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/build-env-ref-available.html

しかし、Python2.X系の開発 や
Docker イメージのPython バージョン以外の開発で
Docker イメージのPython バージョン以外のバージョンが使いたい場合のメモ。

■ 対応案

https://dk521123.hatenablog.com/entry/2020/02/11/141852

で扱ったpyenvなどのPythonの仮想環境を利用する

■ サンプル

version: 0.2

env:
  variables:
    PYTHON_VERSION: "3.6.10"

phases:
  install:
    runtime-versions:
      # Amazon Linux 2:2.0 および Ubuntu Standard:3.0 なら「3.8」
      python: 3.8
    commands:
      - yum update -y
      # pyenvインストール
      - git clone https://github.com/yyuu/pyenv.git ~/.pyenv
      # 環境編の設定
      - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
      - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
      - echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
      # bash_profile を適用
      - source ~/.bash_profile
      # pyenvへのPythonのインストール
      - pyenv install ${PYTHON_VERSION}
      # 全ディレクトリのPythonの切り替え
      - pyenv global ${PYTHON_VERSION}
      # pyenv version確認
      - pyenv versions
      # Python version確認
      - python --version
  build:
    commands:
      - echo '以下省略'

関連記事

CodeBuild ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/01/21/221122
CodeBuildに flake8 を組み込む
https://dk521123.hatenablog.com/entry/2020/02/17/220545
CodeBuild で パラメータストア / Secrets Manager を使う
https://dk521123.hatenablog.com/entry/2020/02/18/230358
CodeBuild で カスタムDockerイメージを使ってビルドする
https://dk521123.hatenablog.com/entry/2020/05/23/080655
仮想環境 ~ pyenv / virtualenv / venv / pipenv ~
https://dk521123.hatenablog.com/entry/2020/02/11/141852