PyCharm 2019.2ヘルプ

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

前提条件

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

  • インターネット接続が安定しています。

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

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

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

  • Dockerでの作業を開始する前に、Docker IntegrationおよびPython Dockerプラグインが有効になっていることを確認してください。プラグインはPyCharmにバンドルされており、デフォルトでアクティブ化されています。プラグインがアクティブ化されていない場合は、プラグインを管理する説明に従って、設定/環境設定ダイアログ(Ctrl+Alt+S)のプラグインページでプラグインを有効にします。

    Windows用のDockerを使用している場合は、Docker設定の一般セクションでTLSなしでtcp://localhost:2375上のデーモンを公開オプションを有効にします。

例の準備

実際には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 インタープリターの追加ダイアログを開きます。

  • エディターにいるとき、最も便利な方法はステータス・バー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を設定したため、サービスツールウィンドウボタンは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年10月14日

関連ページ:

プラグインを管理する

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

プラグイン

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

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

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

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

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

パッケージのインストール、アンインストール、およびアップグレード

PyCharmは、特定のPythonインタープリター用にPythonパッケージをインストール、アンインストール、およびアップグレードするための方法を提供します。デフォルトでは、PyCharmはプロジェクトパッケージの管理にpipを使用します。Conda環境では、condaパッケージマネージャーを使う...