PyCharm 2018.3ヘルプ

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

前提条件

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

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

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

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

例の準備

実際に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 またはメインツールバーの Settings をクリック)を開き、ビルド、実行、デプロイノードのDockerページをクリックします。Dockerサーバーを作成するには、 Add a docker server をクリックします。

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

Docker settings

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

Docker settings

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

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

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

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

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

Adding a 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サーバーの実行/デバッグ設定を作成します。これを行うには、メインメニューで実行 | 構成の編集...を選択してください。開いているダイアログボックスで icons general add svg をクリックし、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年2月10日

関連事項

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

リファレンス: