2024年4月2日火曜日

alpine の最新版で venv を作成した場合に python スクリプトを実行する方法

alpine の最新版で venv を作成した場合に python スクリプトを実行する方法

概要

過去に alpine で venv を作成し pip install する方法を紹介しました
今回は python スクリプトを実行する方法を紹介します

環境

  • Ubuntu 22.04
  • docker 25.0.2
  • lego 4.16.1

dockerfile

docker ファイル内では boto3 をインストールします
このイメージ内で boto3 を import できるようにします

FROM goacme/lego:v4.16.1

RUN apk update
RUN apk add --no-cache --virtual .build-deps python3-dev python3 py3-pip
RUN python3 -m venv ~/test_venv --system-site-packages
RUN ~/test_venv/bin/pip3 install --upgrade pip setuptools
RUN ~/test_venv/bin/pip3 install boto3

python スクリプト

boto3 を import することをテストするスクリプトです
これを先程ビルドしたイメージ内で実行します

import boto3

print("Succeed to import boto3")

起動

ポイントは python3 の実行コマンドのパスです
作成した venv 内にある python3 を使うのがポイントです
また lego の場合ホームディレクトリは /root になっているのでそこに配置していますがスクリプトの配置先はどこでも OK です

  • docker run --rm --entrypoint "" -v $(pwd)/test.py:/root/test.py test /root/test_venv/bin/python3 /root/test.py

最後に

alpine の最新版で python スクリプトを実行する方法を紹介しました
ポイントは venv にインストールした python3 を使う点です

0 件のコメント:

コメントを投稿