PyCharm 2018.2ヘルプ

DockerComposeによるリモートインタプリタの設定

前提条件

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

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

    このチュートリアルをさまざまなプラットフォームで繰り返すこともできます。 macOS(英語)Linux(英語)にはDockerのインストールを使用してください(Ubuntu、他のディストリビューション関連の指示も利用可能です)。

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

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

  • また、Windowsでは、Docker鯨アイコンを右クリックし、コンテキストメニューで[設定]を選択し、[全般]ページで[デーモンを公開する...]チェックボックスを選択します。

    py docker general settings

例の準備

Dockerのように実際に同じ例を繰り返すことはできましたが、Docker Composeのためには意味がありません。

Docker Composeアプリケーションの現実的な例を示すため、DjangoアプリケーションとPostgreSQLデータベースを別々のコンテナで実行します。 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 またはメインツールバーの icons general settings svg をクリック)を開き、ビルド、実行、デプロイノードの下のDockerページをクリックします。 Dockerサーバーを作成するには、 icons general add svg をクリックします。

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

py docker settings

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

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

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

それを行うには、設定ダイアログを開きます( Ctrl+Alt+S を押すか、メインツールバーの icons general settings svg をクリックします)。

プロジェクト・インタープリターページをクリックし、このページでプロジェクト・インタープリターフィールドの横にある gear icon をクリックし、ドロップダウンリストから追加を選択します。

py add interpreter

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

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

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

py docker as remote

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

設定済みのDockerがあるので、PyCharmのメインウィンドウの一番下にDockerツールウィンドウボタンが表示されます:

py docker tool window button

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

py docker running container

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

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と入力します。

py docker run manage py task

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

次に、通常のDjangoサーバの実行/デバッグ設定を作成します。これを行うには、メインメニューで実行|設定の編集...を選択してください。開いているダイアログボックスで icons general add svg をクリックし、Django サーバーを選択します。

py docker run django server

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

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

py docker compose run

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

py docker django app result

Docker-Composeでのアプリケーションのデバッグ

次に、Docker ComposeのデバッグモードでDjangoアプリケーションを起動しましょう。これを行うには、ブレークポイントを設定し(ここでブレークポイントはテンプレートに設定されています)、メインメニューで実行 | デバッグ 'RunDjangoApp'を選択するか、 RunDjangoApp 実行/デバッグ設定を選択した状態で実行/デバッグ設定ドロップダウンの横にある icons actions startDebugger svg をクリックします。

py debug docker django

結果を以下に示します。

py docker django app debug

要約

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

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

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

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

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

  • Docker Composeコンテナで、Djangoアプリケーションのテンプレートをデバッグしました。

最終変更日: 2018年9月24日

関連事項

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

リファレンス