【PyCharm】Docker,Docker-ComposeでPythonインタープリターを設定する

この記事では、PyCharmのエディタを利用する際に、DockerでPythonインタープリターを設定する方法を解説します。

 

◆動作検証環境

【ローカル環境】
・OS:mac Big Sur 11.5.2
・Docker desktop:4.1.1(Engine:20.10.8, Compose:1.29.1)
・Python:3.8.5
・Django:3.2
・PostgrSQL:12.4

 

スポンサードリンク

docker desktop for mac のインストール

 

以下の方法で紹介する方法を実行するには、Dockerとdocker-composeが必要となります。

ローカル環境でDockerを利用するために、以下のサイトよりdocker desktop for macをインストールします。

Docker Desktop

docker desktopをインストールすると、Dockerとdocker-compose共に利用が可能となります。

 

PyCharmでDocker(Python)をインタープリターとして設定する方法

 

対象となるPycharmのバージョン

Docker,Docker-Composeでpythonのインタープリターの設定を行うには、Professional版の利用が必要となります。

ダウンロード PyCharm

 

PycharmのDockerプラグインの確認

Dockerプラグインが有効になっている事を確認します。

 

スポンサードリンク

対象のプロジェクトのインタープリターにDockerを利用しPythonを設定する

 

まず、対象のプロジェクトを作成し、Pycharm で開きます(新規プロジェクトからはDockerを利用しPythonの設定はできません)

preferences -> project settings -> Python Interpreterと進みます。

 

右上の設定アイコンをクリックし、[add]と進みます。

 

左のメニューよりDockerを選択し、Image name を選択します。

ここの候補には、docker desktopで管理されているイメージが表示され、利用するPythonが含まれるイメージを選択します。

 

OKをクリックすると対象のイメージの情報が表示されるため、確認しOKをクリックします。

 

インタープリターの再読み込みが行われます。

 

Pythonイメージがない場合

作成済みのイメージがない場合は、以下の設定画面でオプションを指定してpythonイメージを作成する事も可能です。

Image nameを[python:latest]としてOKとすると、イメージがPULLされます。

必要に応じてオプションを変え、利用するPythonのバージョンを指定します。

 

最新バージョンのPython(3.10.2)が設定された事が確認できます。

 

————————————–

RUNコマンドの設定を確認すると、さきほど指定したインタープリターの設定になっている事が確認できます。

 

デバックの実行も行えます。

 

PyCharmでdocker-compose(Python)をインタープリターとして設定する方法

 

1つのコンテナの利用(Pythonのみ使用など)であれば、先程紹介したDockerを利用する方法で問題ありませんが、DjangoなどWebアプリケーションの開発の際は、Pythonに加え、データベース、場合によってはWebサーバーのコンテナの利用も必要となるため、docker-composeを使う方法の対応が必要です。

 

新規Djangoプロジェクトの準備

Pycharmが立ち上がった後のwindowでNewProjectを選択します。

 

Djangoのフレームワークを選択してプロジェクトを作成します。

この時に、仮想環境を利用するためローカル環境にPythonがインストールされている必要があります。

ここでは[main]というapplicationを作成する指定で作成します。

 

Djangoプロジェクトの確認

以下のようなディレクトリ階層で、Djangoプロジェクトが作成された事を確認できます。

 

RUNコマンドにはデフォルトで run serverの設定がされています。

 

manage.pyのコマンドを実行する

などのコマンドは、Run manage.py Taskの機能を利用して簡単に行う事ができます。

 

下部のwindowにmanage.py Taskのコンソールが表示されます。

makemigrationsコマンドを行う際は、makemigrations と入力する事で行えます。

他のコマンドも同じように実行できます。

DockerFile及びdocker-compose.ymlファイルの準備

今回はPostgreSQLをDjangoのフレームワークで利用する方法を紹介します。

Dockerfileの作成

プロジェクトのルートディレクトリに以下の内容で作成します。

 

docker-compose.ymlの作成

プロジェクトのルートディレクトリに以下の内容で作成します。

 

requirements.txtの作成

プロジェクトのルートディレクトリで以下のコマンドを行い、requirements.txtを作成します。

requirements.txtの編集

postgresqlの利用に備え、psycopg2-binaryを加えます。

 

settings.pyファイルの編集

PostgreSQLの使用に合わせデータベースの設定を以下のように編集します。

 

 

リモートインタープリターとしての Docker Compose の設定

Dockerでインタープリターを設定した時と同じ方法で、preferenceの設定を行います。

Serviceの項目で対象のコンテナを指定する必要があります。

こちらにはPythonのイメージを含むコンテナを指定します。

 

 

さきほどの設定で進めると、webコンテナで指定したPythonのバージョンがインタープリターとなり、Packageにはrequirements.txtで指定したものがインストールされています。

 

 

Docker Composeを使いプロジェクトを起動する

インタープリターの設定が完了すると、ymlファイルに以下のようなアイコンが表示されるので、設定したインタープリターを指定して実行します。

 

実行を行い、serviceタブ内のデプロイログを確認すると、docker-compose.yml up -dコマンドが実行されコンテナが起動します。

 

データベースのmigrateを行う

コンテナの起動後に、データベースのmigrateを行います。

manage.py Task を利用して行います。

 

runボタンでrunserverを行う

runボタンのEdit Configurationsを選択します。

 

対象のプロジェクト(当記事の場合は、djangoProject)を選択し、Host:を0.0.0.0 に設定します。

 

設定が終わった後にrunボタンを実行するとrun server コマンドが実行されて、http://0.0.0.0:8000/ へアクセスするとWelcomeページを確認できます。

 

 

docker-compose コマンドのショートカットを設定する

 

これまでの設定を終えるとRunボタンのショートカットには、docker-compose up -d と、runserver が設定されています。

他のコマンドを利用する際は、設定が必要となります。

 

ここでは、–buidlのオプションを付けたコマンドのショートカットの作成方法を紹介します。

docker-compose up –build

runショートカットのコンフィグ設定を開き、既に作成されている[docker-compose.yml: Compose Deployment]をコピーします。

 

docker-compose up -> Modifi -> Build -> Alwaisを選択しOKとします。

 

これで、–buildオプションのついたコマンドのショートカットを利用できます。

 

 


以上、PyCharmのエディタを利用する際に、DockerでPythonインタープリターを設定する方法を紹介しました。