Python が動く Dockerfile を作る

Uncategorized
527 words

Python の実行ファイルを入れて「Docker を実行するとその Python が実行される」そんな Dockerfile の Image を作りたいと思います。

はじめに

  • Windows 10 Home 21H1
  • Docker version 20.10.8

準備

まず、どのバージョンの Python を使うか決めます。

DockerHub の Python Official Image から使いたい Python のバージョンを決めます。

私は、新しすぎると動かないことと容量が気になったので「3.9.7-slim-buster」を使って Dockerfile を作ることに決めました。

Dockerfile を作る

使う Python が決まったら実際に Dockerfile を作って行きます。

まず、適当なフォルダを作ってその中に「Dockerfile」と言う名前のファイル作ります。拡張子は無し。

Dockerfile には下記をコピペしておきます。

1
2
3
4
5
FROM python:3.9.7-slim-buster
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD [ "python", "./hello-world.py" ]

hello-world.py

同じフォルダ内に「hello-world.py」と「requirements.txt」を作ります。

中身は一番シンプルなものでいきます。

1
print('Hello World!!')

「requirements.txt」の中身は今回不要なので空です。とりあえずこんな感じになればOK

Image を作成

1つ上の階層に戻って、Image を作成するバッチファイルを作ります。

「docker-build.bat」というファイルを作って下記をコピペします。

1
2
3
4
cd Python-run
docker build -t docker-python .
cd ../
docker save docker-python -o docker-python.tar

4行目で出来上がった Imageファイルを tar型式にアーカイブして出力しています。

なので出来上がった「python-run.tar」このファイルを渡せば簡単に Docker を動かすことができます。

バッチファイルを実行したらこんな感じになります。

フォルダ内に「python-run.tar」が作られてたら成功です。

実行

「python-run.tar」を動かしたいPCにコピペしたら、実際に実行したいと思います。

python-run.tar と同じフォルダ内にバッチファイルを作って実行します。ファイル名は「docker-run.bat」にしました。

1
2
docker load -i python-run.tar
docker run -it --rm --name python-run python-run

バッチファイルを実行するとこのように結果が表示されます。