【Python】DockerでPythonの環境を構築してみる

特に理由はないのですが、何となくDockerを使ったPython環境の構築を行いました。
基本的に下記のQiitaの記事を参考にしています。
DockerでPython実行環境を作ってみる #Python – Qiita
当記事はPythonが動く環境を作ることが目的の記事になります。
そのため、DockerファイルやYAMLファイルなどの設定値の解説は省略し、手順の一部簡略化を行っています。
開発環境
- OS:Windows11
- Docker Desktopインストール済み
- VSCodeインストール済み
Dockerファイルを作成する
下記のコマンドを実行し、Dockerファイルを作成します。
エラーメッセージが表示されますが、Dockerファイルが作成されていれば問題ありません。
type nul > Dockerfile
下記の内容でDockerファイルを編集します。
FROM python:3
USER root
RUN apt-get update
RUN apt-get -y install locales && \
localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9
ENV TERM xterm
RUN apt-get install -y vim less
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN python -m pip install jupyterlab

YAMLファイルを作成する
下記のコマンドを実行し、YAMLファイルを作成します。
エラーメッセージが表示されますが、YAMLが作成されていれば問題ありません。
type nul > docker-compose.yml
下記の内容でYAMLファイルを編集します。
version: '3'
services:
app:
restart: always
build: .
working_dir: '/data'
tty: true
volumes:
- ./src:/data

コンテナを起動する
下記のコマンドを実行し、コンテナを起動します。
エラーなく終了すると、srcフォルダが作成されます。
docker compose up -d --build
Docker画面でPythonコンテナが起動していればOKです。


Pythonのサンプルプログラムを用意する
下記のコマンドを実行し、サンプル用のプログラムを作成します。
type nul > src/sample.py
動作確認用にHello Worldと出力される処理を実装します。
print("hello world")

Pythonプログラムを実行する
下記のコマンドを実行し、コンテナに入ります。
docker compose exec app bash
下記のコマンドでPythonプログラムを実行します。
python sample.py
コンソールにHello Worldと出力されれば成功です。

以上になります。
お読み頂き、ありがとうございました。