おすすめ商品を楽天Roomで紹介しています

Docker|Dockerfile(Python環境)編

プログラミング

はじめに

私はM2のMacbookAirを使用していますが、端末に直接いろんなものをインストールすることに少し抵抗があり、Dockerを使って開発環境を構築しています。

今回は最も使用する頻度の高いPython環境についてご紹介します。

執筆している2025年2月の時点で私がPythonでやりたいことは以下の2つです。

  • Pythonの基本的なコマンドなどの練習
  • BeautifulsoupやSeleniumなどを用いたスクレイピングによる自動化処理構築

これらの目的を達成するためにどのようにDockerfileを作成しているのかを紹介します。

Dockerfileの構成

以下のような構成でDockerfileなどを作成しています。

基本的にPythonコードはJupyterLab環境で実行する想定の為、2つのDockerfileを用意しています。

  • Pythonコードを実行するためのコンテナ
  • スクレイピングを行うためのブラウジング環境のコンテナ

これらを「docker-compose.yml」を使って、それぞれ立ち上げる仕組みです。

各ファイルの詳細

「python_jupyterlab」フォルダの「Dockerfile」

このファイルは、PythonコードをJupyterLab環境で実行するためのコンテナを作成します。具体的には、以下の処理を行っています。

1. Ubuntuベースのコンテナを使用
最新のUbuntuをベースに環境を構築します。

2. 必要なパッケージのインストール
必要な開発ツール(例:build-essential, cmake, gitなど)をインストールし、キャッシュを削除してコンテナサイズを削減します。

3. Anaconda3のインストール
Anacondaをインストールし、Python環境を整えます。

4. pipのアップデートとライブラリのインストール
pipを最新にアップデートし、必要なPythonライブラリをインストールします。

5. JupyterLabをデフォルトで実行
JupyterLabを起動し、セキュリティのために認証トークンを設定します。

「python_jupyterlab」フォルダの「requirements.txt」

ここでは、コンテナにインストールしたいPythonライブラリを指定します。以下のライブラリをインストールしています。

「selenium_chrome」フォルダの「Dockerfile」

このファイルは、スクレイピング用のブラウジング環境を構築します。以下の内容でChromiumをインストールしたコンテナを作成します。

seleniarm/standalone-chromiumは、ARMアーキテクチャ向けのSeleniumとChromiumが統合されたコンテナイメージです。これにより、常に最新のChromiumとSeleniumが利用できます。

「docker-compose.yml」

これまで紹介したファイルを使って、イメージを作成し、コンテナを立ち上げるための設定ファイルです。

1. selenium_chromeコンテナ
• Selenium WebDriverとChromiumを使ったブラウザ操作環境を提供します。
• ポート設定(4444と7900)はSeleniumとVNC(ブラウザの動作確認用)用です。
• メモリ設定(2GB)により、安定した動作が可能になります。

2. python_jupyterlabコンテナ
• PythonとJupyterLabを使ったデータ分析環境を提供します。
• JupyterLabはポート8888でアクセスできます。
• Seleniumと接続するために、SELENIUM_URL環境変数を設定しています。

最後に

このように、Dockerを使ったPython開発環境の構築を簡単に行うことができます。
JupyterLabとSeleniumを使った作業も、コンテナで分けて管理することで、効率的な開発が可能になります。

もしよろしければお試し下さい!

コメント

タイトルとURLをコピーしました