【Pycharm】DockerComposeを使用してPythonインタープリターを構成する

この記事では、python用エディターPyCharmで、DockerComposeを使用してPythonインタープリターの設定を行うための設定方法を紹介します。

 

◆動作検証環境

・ローカル環境: mac Monterey 12.3.1
・PyCharm:2021.3.2(Profesional Edition)

なお、今回の設定はPyCharm(Profesional Edition)の利用が必要となります。

PyCharmCE(Comunity Edition)では同様の設定ができません。

 

スポンサードリンク

開発に利用するDockerエンジンの選択

 

Pycharm -> Preferances -> Docker と選択し、Connect to Docker daemon with:が、Docker for Macとなっている事を確認します。

 

docker-compose.ymlファイルの確認

 

DockerComposeを使用してPythonインタープリターの設定する際には、docker-compose.ymlファイルの準備が必要です。

今回は以下のように、web(pythonイメージ使用)、db(Postgresqlのイメージ使用)、nginx(nginxのイメージ使用)の3つのコンテナに対応するymlファイルを使用します。

 

docker-compose.yml

 

 

PythonインタープリターをDockerコンテナ内のPythonに設定する。

 

Pycharm -> Preferances -> Project: Project Name -> Python Interpreter を選択します。

 

ウィンドウ右上の歯車アイコンから[Add…]を選択します。

 

Docker Composeを選択し対象のServer、ymlファイル、Service(pythonのイメージを指定しているもの)を指定します。

 

Pythonイメージがあるコンテナと接続が開始されます。

 

Pycharmのインタープリターで使用するコンテナが作成後、確認を行い設定終了です。

 

Docker for Macのダッシュボードを確認すると、Pycharm用のコンテナが作成されている事を確認できます。

 

 

コンテナを起動し動作を確認する

 

ここまでの設定を終えてから、docker-compose.ymlファイルをエディタ上で開くと、緑色のアイコンが表示されます。

アイコンをクリックすると、以下のようにコンテナを起動する事ができます。

▶▶services  全てのコンテナを起動する

▶web 、▶db、▶nginx それぞれのコンテナを起動する

 

▶▶services のアイコンをクリックし、全てのコンテナを起動します。

Docker for Macのダッシュボードを確認すると、Pycharm用のコンテナが起動されている事を確認できます。

 

エディタ下部から、[Service] を選択すると、コンテナの状態の確認や操作を行う事ができます。

 

起動後、docker-composeの状態を確認すると、docker-compose up -d コマンドが実行され、コンテナが起動している事を確認できます。

 

ウィンドウ左側の■アイコンでコンテナの停止、その下のアイコンでコンテナの削除を行う事ができます。

 

なお、ボリュームを削除する際は、[Volumes]内の対象のボリュームを選択し削除できます。

 

スポンサードリンク

docker-compose up -dコマンド実行時のオプション設定

 

コードの修正等を行い、イメージを作成し直す場合、–buidオプションが必要となります。

 

こちらは実行コマンドの編集を行う事で対応できます。

まず、▶▶アイコンをクリックし、コンテナを起動します。

次に、下部のServicetタブからDocker-composeを選択し、左側の編集アイコンを選択します。

 

Edit Deployment Configurationの設定画面となります。

 

Nameは任意の設定を行います。

今回は、[up -d –build]としました。

 

次にdocker-compose upの欄のModefyから、[Build]を選択します。

 

OKをクリックします。

その後、▶▶アイコンをクリックすると、さきほど設定した設定名が表示されるので、そちらを選択します。

 

設定した–buildオプションを反映してコマンドが実行されます。

 

なお、右上のランコマンド実行時に使用するアイコンからも、さきほど追加したオプションの実行方法も選択し、実行できます。

 

なお、さきほどの設定ウィンドウで、Run[Modify options] -> remove volume on downをオプションとして設定すると、この設定したRUNコマンド(docker-compose up -d + option)を行って起動したコンテナを停止(削除)する際に、ボリュームも削除される設定とする事ができます。

しっかりと使い分けができる場合は便利ですが、心配な場合は個別にボリュームを削除したほうが安心と思います。

 

コンテナを起動後の「manage.py」タスクの実行方法

 

コンテナ内でpython manage.pyのタスクコマンドを使用するためには、まず、Djangoフレームワークの設定を行います。

Preferendes -> Languages & Frameworks からDjangoを選択し、Django project root と Settingsを指定します。

 

上記の設定を行うと、toolタブ内にRun manage.py Task…が選択できるようになりますので、そちらをクリックします。

 

エディタ下部のタブに manage.py@ProjectNameのタブが表示され、コンソール入力ができるようになります。

 

実行したコマンドを入力します。

例えば、migrateを行う場合は以下のように表示されます。

入力候補の表示や、実行後の履歴が残るので便利です。

 

同じ方法で、collectstaticsや、makemigrationsなどにも対応できます。

 

コンソールを表示した際に以下のようなエラーメッセージが確認できる場合は、以下の事項を確認し対応します。

 

・①コンテナが起動しているか確認する

・②起動中のコンテナ、ボリュームを削除し、エディタを再起動し、もう一度コンテナを起動する

・③起動時に –buldオプションを使用している場合は、起動中のコンテナ、ボリュームを削除し、エディタを再起動し、–buildをつけずに起動する(up -dのみ)

 


以上、python用エディターPyCharmで、DockerComposeを使用してPythonインタープリターの設定を行うための設定方法を紹介しました。