PyCharm 2019.1ヘルプ

Docker Composeを使ってリモートインタープリターを設定する

前提条件

次の前提条件が満たされていることを確認してください。

  • 安定したインターネット接続を持っています。

    Dockerで操作するには、busybox(英語)のイメージがあなたのマシンで利用可能である必要があります。PyCharmが busybox:latestをダウンロードして実行できるように、安定したインターネット接続があることを確認してください。Dockerの設定が完了したら、オフラインにすることができます。

  • Dockerがインストールされています。Dockerはさまざまなプラットフォームにインストールできますが、ここではWindows(英語)のインストールを使用します。

    このチュートリアルを異なるプラットフォームで繰り返すことをお勧めします。それからmacOS(英語)Linux(英語)のためにDockerインストールを使用してください(Ubuntu、他のディストリビューション関連の命令も同様に利用可能です)。

  • Dockerでの作業を始める前に、Docker統合とPython Dockerプラグインが有効であることを確認してください。プラグインはPyCharmにバンドルされており、デフォルトで有効になっています。プラグインが有効になっていない場合は、プラグインを管理する説明に従って、設定/環境設定ダイアログプラグインページでプラグインを有効にします。

例の準備

実際にはDockerに使用されたのと同じ例を繰り返すことができましたが、Docker Composeには意味がありません - 単純すぎます...

Docker Composeアプリケーションの現実的な例を示すために、別のコンテナーで実行されているPostgreSQLデータベースと共にDjangoアプリケーションを使用します。GitHubからプロジェクトを入手してください(英語)、PyCharm(ファイル | 開く)で開きます。

このDjangoアプリケーションでは、データベース用とアプリケーション用の2つのコンテナーを作成する必要があります。Docker Composeを使用して、2つのコンテナーをリンクします。

DockerおよびDocker Compose用のファイルを追加する

プロジェクトツールウィンドウで、プロジェクトルートを右クリックして新規 | ファイルAlt+Insert)を選択し、ファイル名(ここでは Dockerfile)を入力して、次のコードを入力します。

FROM python:3.6 WORKDIR /app # By copying over requirements first, we make sure that Docker will cache # our installed requirements rather than reinstall them on every build COPY requirements.txt /app/requirements.txt RUN pip install -r requirements.txt # Now copy in our code, and run it COPY . /app EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

次に、docker-compose.yml ファイルに対して同じ手順を繰り返して、次のコードを入力します。

version: '2' services: web: build: . ports: - "8000:8000" volumes: - .:/app links: - db db: image: "postgres:9.6" ports: - "5432:5432" environment: POSTGRES_PASSWORD: hunter2

docker-compose.yml ファイルを見てみましょう。このファイルは、webdbの2つのサービスを定義し、リンクします。

Dockerの設定

例を準備したため、Dockerを構成しましょう。

これを行うには、設定ダイアログ(Ctrl+Alt+S またはメインツールバーの Settings をクリック)を開き、ビルド、実行、デプロイノードのDockerページをクリックします。 Add a docker server をクリックしてDockerサーバーを作成します。

推奨されるデフォルト値を受け入れます。

Docker settings

macOSの場合、Mac用Dockerを選択してDockerデーモンに接続します。

Docker settings

次に、変更を適用します。

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

Docker-Composeに基づいてリモートインタープリターを定義しましょう。

どちらかの方法でPython インタープリターの追加ダイアログを開きます。

  • エディターにいるとき、最も便利な方法はステータス・バーPython インタープリターウィジェットを使うことです: ウィジェットをクリックしてインタープリターの追加 ...を選択

  • 設定/環境設定ダイアログ(Ctrl+Alt+S)にいる場合は、プロジェクト<プロジェクト名> | プロジェクト・インタープリターを選択してください。 The Configure project interpreter アイコンをクリックして追加を選択します。

表示されるダイアログで、Docker Composeオプションを選択し、ドロップダウンリストからDockerサーバー、Docker Composeサービス(ここでは web)、設定ファイル(ここでは docker-compose.yml)、およびイメージ名(ここでは python)を選択します。

webを選んだのはなぜですか?この選択は、Docker-Composeベースのインタープリターを構成した後、選択したコンテナーの動作を変更する通常の実行構成を作成できるようになるという事実によって説明されます。コンテナー内のコードをデバッグする場合は、ここで選択する必要があります。作成ファイル内の他のすべてのコンテナーは、常にこのファイルとともに起動されますが、PyCharmからの動作に影響を与えることはできません。コマンドラインからコマンド docker-compose up を起動した場合と同じように動作します。

次に、PyCharmがあなたのDocker-Compose設定を開始してスキャンしてインデックスを作成するのを待ちます:

Configure remote Python interpreter

Dockerツールウィンドウを使用する

Dockerを設定したため、DockerツールウィンドウボタンはPyCharmのメインウィンドウの下部に表示されます。

このボタンをクリックして、コンテナーが動作していることを確認します。

Docker window

データベース資格情報の構成

Djangoプロジェクトの settings.py ファイルの DATABASES セクションを変更して、データベース構成の詳細を追加します。

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'USER': 'postgres', 'PASSWORD': 'hunter2', 'HOST': 'db' } }

Docker-Composeでアプリケーションを実行する

まず、Djangoアプリケーションを実行しているときに、移行を実行する必要があります。

これを行うには、ツール| 'manage.py' タスクを実行するを選択し、migrateと入力します。

manage.py task is running in the Docker

(詳細はmanage.pyユーティリティの実行中のタスクを参照してください)。

次に、通常のDjangoサーバーの実行/デバッグ構成を作成します。そのためには、メインメニューで実行 | 構成の編集...を選択します。開いたダイアログで Add Run/Debug configuration for a Django Server をクリックしてDjango サーバーを選択します。

Run/Debug configuration for a Django server
注意を払うべき唯一のことは、ホストフィールドを 0.0.0.0 に設定する必要があります。- Dockerコンテナーの外部からの要求をリッスンするようにする必要があります:

この構成(実行 | 実行 'RunDjangoApp')を起動します。

Docker compose run

Webブラウザで出力を確認するには、http://localhost:8000(英語)(アドレスバーの 0.0.0.0localhostに変更)に移動します。

Django application output

要約

PyCharmの助けを借りて何がなされたのかをまとめましょう。

  • GitHubからDjangoアプリケーションをダウンロードして開きました。

  • 特定のDocker Composeファイルをプロジェクトに追加しました。

  • Docker Composeをベースにしたリモートインタープリターを構成しました。

  • DjangoアプリケーションをDocker Composeコンテナーで実行しました。

最終更新日: 2019年6月13日

関連事項

言語、フレームワークおよびテクノロジ:

リファレンス:

関連ページ:

プラグインを管理する

プラグインはPyCharmのコア機能を拡張します。たとえば、以下のことができます。バージョン管理システム、アプリケーションサーバー、およびその他のツールとの統合を提供する、さまざまな言語とフレームワークのサポートを追加する、ショートカットヒント、ライブプレビュー、ファイルウォッチャーなどを使用して生...

設定/環境設定ダイアログ

現在のプロジェクトに関連する設定はアイコンでマークされています。設定ダイアログでは、PyCharmの動作と外観を制御できます。ダイアログの左上部分にある検索フィールドを使用して、目的のオプションを見つけます。あるいは、検索ボックスにあるカテゴリの階層リスト(設定のグループ)を使用して設定を参照するこ...

プラグイン

プラグインダイアログを使用してプラグインを管理します:プラグインリポジトリをブラウズし、プラグインのインストール、削除、有効化、無効化、および更新を行います。主なコントロール:マーケットプレースこのタブを使用して、JetBrainsプラグインリポジトリからプラグインをブラウズしてインストールします。...

Dockerを使ってリモートインタープリターを設定する

この機能はProfessionalエディションでのみサポートされています。このエディションは有償で、優れた機能を提供します。詳細は比較表を参照してください。導入:PyCharmとDockerの統合により、Dockerコンテナーにデプロイされたさまざまな構成の開発環境でアプリケーションを実行できます。...

ステータス・バー

ステータスバーを使用すると、現在のIDE状態を監視し、環境保守タスクを実行できます。ステータスバーのアイコン:クリックすると、ツールウィンドウバーの表示/非表示が切り替わります。隠れたツールウィンドウバーを表示するには、⌘(macOSの場合)またはAlt(Windowsまたは*NIXの場合)を2回押...

manage.pyユーティリティの実行中のタスク

この機能はProfessionalエディションでのみサポートされています。このエディションは有償で、優れた機能を提供します。詳細は比較表を参照してください。概要:PyCharmを使用すると、IDE内からDjango manage.pyユーティリティを実行できます。このユーティリティの各タスクは、ma...