Azure Toolkit for IntelliJ を使用して Web アプリを Docker コンテナーとして発行するPublish a web app as a Docker container by using the Azure Toolkit for IntelliJ

Docker コンテナーは、Web アプリケーションをデプロイするために広く使用されている方法です。Docker containers are a widely used method for deploying web applications. Docker コンテナーを使用すると、開発者は、すべてのプロジェクト ファイルと依存関係を、サーバーにデプロイするために 1 つのパッケージに統合できます。By using Docker containers, developers can consolidate all their project files and dependencies into a single package for deployment to a server. Java 開発者のこのプロセスを簡略化するために、Azure Toolkit for IntelliJ には、Microsoft Azure にデプロイするための "Docker コンテナーとして発行" 機能が追加されました。The Azure Toolkit for IntelliJ simplifies this process for Java developers by adding Publish as Docker Container features for deployment to Microsoft Azure. この記事では、アプリケーションを Docker コンテナーとして Azure に発行するために必要な手順を説明します。This article walks you through the steps required to publish your applications to Azure as Docker containers.

注意

Docker の詳細については、Docker の Web サイトを参照してください。More information about Docker is available on the Docker website.

前提条件Prerequisites

この記事の手順を完了するには、Azure Toolkit for IntelliJ をインストールする必要があります。これには、次のソフトウェア コンポーネントが必要です。To complete the steps in his article, you will need to install the Azure Toolkit for IntelliJ, which requires the following software components:

注意

JetBrains Plugin Repository の Azure Toolkit for IntelliJ に関するページに、このツールキットと互換性のあるビルドが一覧表示されています。The Azure Toolkit for IntelliJ page at the JetBrains Plugin Repository lists the builds that are compatible with the toolkit.

Docker コンテナーを使用して Web アプリを Azure に発行するPublish your web app to Azure by using a Docker container

注意

  • Web アプリを発行するには、デプロイの準備ができたアーティファクトを作成する必要があります。To publish your web app, you must create a deployment-ready artifact. 詳細については、「アーティファクトの作成に関する追加情報」セクションを参照してください。To learn more, see the Additional information about creating artifacts section.

  • デプロイ ウィザードを少なくとも 1 回完了した後、ウィザードをもう一度実行するときには、設定の大部分が既定値として使用されます。After you have completed the deployment wizard at least once, most of your settings are used as defaults when you run the wizard again.

  1. IntelliJ で、Web アプリ プロジェクトを開きます。Open your web app project in IntelliJ.

  2. Publish as Docker Container (Docker コンテナーとして発行) ウィザードを起動するには、次のいずれかの操作を行います。To start the Publish as Docker Container wizard, do either of the following:

    • [プロジェクト] ツール ウィンドウでプロジェクトを右クリックし、 [Azure] をクリックしてから [Publish as Docker Container](Docker コンテナーとして発行) をクリックします。In the Project tool window, right-click your project, click Azure, and then click Publish as Docker Container:

      [Publish as Docker Container](Docker コンテナーとして発行) コマンド

    • IntelliJ ツール バーの [Publish Group](発行グループ) ボタンをクリックし、 [Publish as Docker Container](Docker コンテナーとして発行) をクリックします。On the IntelliJ toolbar, click the Publish Group button, and then click Publish as Docker Container:

      [Publish as Docker Container](Docker コンテナーとして発行) コマンドThe Publish as Docker Container command
      Deploy Docker Container on Azure (Azure に Docker コンテナーをデプロイ) ウィザードが開かれます。The Deploy Docker Container on Azure wizard opens.

    [Deploy Docker Container on Azure] (Azure への Docker コンテナーのデプロイ) ウィザード

  3. [Type image name, select artifact's path and check Docker host to be used] (イメージ名を入力し、アーティファクトのパスを選択して、使用される Docker ホストを確認する) ウィンドウで、以下の手順を実行します。In the Type an image name, select the artifact's path and check a Docker host to be used window, do the following:

    a.a. [Docker image name] (Docker イメージ名) ボックスに、Docker ホストの一意の名前を入力します。In the Docker image name box, enter a unique name for your Docker host. (このウィザードでは名前が自動的に作成されますが、それは変更できます)。(The wizard automatically creates a name, but you can modify it.)

    b.b. [ホスト] 領域には、既に作成しているすべての Docker ホストが表示されます。The Hosts area displays any Docker hosts that you have already created. 次のいずれかを実行します。Do either of the following:

    • 既存の Docker ホストがある場合は、それに Web アプリをデプロイできます。If you have an existing Docker host, you can deploy your web app to it.

    • Docker ホストを作成するには、緑色のプラス記号 ( + ) をクリックします。To create a Docker host, click the green plus sign (+).
      [Create Docker Host](Docker ホストの作成) ダイアログ ボックスが表示されます。The Create Docker Host dialog box opens.

      [Deploy Docker Container on Azure] (Azure への Docker コンテナーのデプロイ) ウィザード

  4. [Configure the new virtual machine](新しい仮想マシンの構成) ウィンドウで、Docker ホストについての以下の情報を指定しますIn the Configure the new virtual machine window, provide the following information about your Docker host. (ほとんどの情報はウィザードによって自動的に生成されますが、どの情報も変更することができます)。(The wizard automatically generates most of the information for you, but you can modify any of them.)

    a.a. [名前] ボックスに、Docker ホストの一意の名前を入力しますIn the Name box, enter a unique name for the Docker host. (これは前に指定した Docker イメージの名前と同じではありません)。(It is not the same as the Docker image name that you specified earlier.)

    b.b. [サブスクリプション] ボックスで、ホストのために使用する Azure サブスクリプションを入力します。In the Subscription box, enter the Azure subscription that you use for your host.

    c.c. [リージョン] ボックスで、ホストが配置される地理的なリージョンを入力します。In the Region box, enter the geographical region where your host is located.

    d.d. [OS and Size](OS とサイズ) タブで、以下の操作を行います。On the OS and Size tab, do the following:

    • [Host OS](ホスト OS) :ホストがある仮想マシンのオペレーティング システムを入力します。Host OS: Enter the operating system for the virtual machine that contains your host.
    • [サイズ] :ホストの仮想マシンのサイズを入力します。Size: Enter the virtual-machine size for your host.

    e.e. [リソース グループ] タブで、以下のいずれかを選択します。On the Resource Group tab, select either of the following:

    • [新しいリソース グループ] :自分のホストのリソース グループを作成します。New resource group: Create a resource group for your host.
    • 既存のリソース グループ:Azure アカウントの既存のリソース グループを指定します。Existing resource group: Specify an existing resource group from your Azure account.

    f.f. [ネットワーク] タブで、以下のいずれかを選択します。On the Network tab, select either of the following:

    • [新しい仮想ネットワーク] :自分のホストの仮想ネットワークを作成します。New virtual network: Create a virtual network for your host.
    • [既存の仮想ネットワーク] :Azure アカウントの既存の仮想ネットワークを指定します。Existing virtual network: Specify an existing virtual network from your Azure account.

    g.g. [ストレージ] タブで、以下のいずれかを選択します。On the Storage tab, select either of the following:

    • [新しいストレージ アカウント] :自分のホストのストレージ アカウントを作成します。New storage account: Create a storage account for your host.
    • 既存のストレージ アカウント:Azure アカウントの既存のストレージ アカウントを指定します。Existing storage account: Specify an existing storage account from your Azure account.
  5. [次へ] をクリックします。Click Next.
    [Configure log in credentials and port settings](ログイン資格情報とポート設定の構成) ウィンドウが開きます。The Configure log in credentials and port settings window opens.

    [Configure log in credentials and port settings](ログイン資格情報とポート設定の構成) ウィンドウ

  6. 次のいずれかのオプションを選択します。Select one of the following options:

    • [Import credentials from Azure Key Vault](Azure Key Vault からの資格情報のインポート) : 自分の Azure サブスクリプションに格納されている、以前に保存された一連の資格情報を指定します。Import credentials from Azure Key Vault: Specify a previously saved set of credentials that are stored in your Azure subscription.

      注意

      特定のアカウントまたはサービス プリンシパルで作成された Azure Key Vault は、サブスクリプションを共有する別のアカウントまたはサービス プリンシパルから自動的にアクセスできるようにはなりません。An Azure key vault that's created with a specific account or service principal is not automatically accessible by another account or service principal that shares the subscription. 別のアカウントまたはサービス プリンシパルが Key Vault を使用できるようにするには、Azure Portal を使用して、アカウントまたはサービス プリンシパルを追加する必要があります。To allow another account or service principal to use the key vault, you must use the Azure portal to add the account or service principal.

    • [New log in credential](新しいログイン資格情報) : 新しい一連のログイン資格情報を作成します。New log in credentials: Create a new set of login credentials. このオプションを選択する場合は、次の操作を行います。If you select this option, do the following:

      a.a. [VM Credentials](VM 資格情報) タブで、Docker ホストの仮想マシン ログイン資格情報に次の情報を入力します。On the VM Credentials tab, provide the following information for the virtual-machine login credentials of your Docker host:

      • [ユーザー名] : 自分の仮想マシン ログイン資格情報のユーザー名を入力します。Username: Enter the username for your virtual-machine login credentials.

      • [パスワード][確認] : 自分の仮想マシン ログイン資格情報のパスワードを入力します。Password and Confirm: Enter the password for your virtual-machine login credentials.

      • SSH:Docker ホストの Secure Shell (SSH) 設定を入力します。SSH: Enter the Secure Shell (SSH) settings for your Docker host. 次のいずれかを選択します。You can select one of the following options:

      • なし:自分の仮想マシンで SSH 接続を許可しないように指定します。None: Specifies that your virtual machine does not allow SSH connections.

      • [自動生成] : SSH 経由で接続するために必要な設定を自動的に作成します。Auto-generate: Automatically creates the requisite settings for connecting via SSH.

      • [Import from directory](ディレクトリからインポート) : 以前に保存された一連の SSH 設定が含まれているディレクトリを指定できます。Import from directory: Allows you to specify a directory that contains a set of previously saved SSH settings. このディレクトリには、次の 2 つのファイルが含まれている必要があります。The directory must contain the following two files:

        • [id_rsa] : ユーザーの RSA ID が含まれます。id_rsa: Contains the RSA identification for a user.

        • [id_rsa.pub] :認証に使用される RSA 公開キーが含まれます。id_rsa.pub: Contains the RSA public key that is used for authentication.

      b.b. [Docker Daemon Access](Docker デーモン アクセス) タブで、以下の情報を指定します。On the Docker Daemon Access tab, provide the following information:

      [Create Docker Host] (Docker ホストの作成)

      • [Docker デーモン ポート] : Docker ホストの固有の TCP ポートを入力します。Docker Daemon port: Enter the unique TCP port for your Docker host.

      • [TLS セキュリティ] : Docker ホストのトランスポート層セキュリティ設定を入力します。TLS Security: Enter the Transport Layer Security settings for your Docker host. 次のオプションから選択できます。You can choose from the following options:

      • なし:自分の仮想マシンで TLS 接続を許可しないように指定します。None: Specifies that your virtual machine does not allow TLS connections.

      • [自動生成] : TLS 経由で接続するために必要な設定を自動的に作成します。Auto-generate: Automatically creates the requisite settings for connecting via TLS.

      • [Import from directory](ディレクトリからインポート) : 以前に保存された一連の TLS 設定を含むディレクトリを指定します。Import from directory: Specifies a directory that contains a set of previously saved TLS settings. このディレクトリには、次の 6 つのファイルが含まれている必要があります。The directory must contain the following six files:

        • [ca.pem][ca-key.pem] : TLS 証明機関の証明書と公開キーが含まれます。ca.pem and ca-key.pem: Contain the certificate and public key for the TLS Certificate Authority.

        • [cert.pem][key.pem] : TLS 認証に使用されるクライアント証明書と公開キーが含まれています。cert.pem and key.pem: Contain client certificate and public key which will be used for TLS authentication.

        • [server.pem][server-key.pem] : TLS 認証に使用されるクライアント証明書と公開キーが含まれます。server.pem and server-key.pem: Contain the client certificate and public key that is used for TLS authentication.

  7. 必要な情報を入力したら、 [完了] をクリックします。After you have entered the required information, click Finish.
    Deploy Docker Container on Azure (Azure に Docker コンテナーをデプロイ) ウィザードが再び表示されます。The Deploy Docker Container on Azure wizard reappears.

    Deploy Docker Container on Azure (Azure に Docker コンテナーをデプロイ) ウィザード

  8. [次へ] をクリックします。Click Next.
    [Configure the Docker container to be created](作成される Docker コンテナーの構成) ウィンドウが開きます。The Configure the Docker container to be created window opens.

    [Configure the Docker container to be created](作成される Docker コンテナーの構成) ウィンドウ

  9. [Configure the Docker container to be created](作成される Docker コンテナーの構成) ウィンドウで、以下の情報を指定します。In the Configure the Docker container to be created window, provide the following information:

    a.a. [Docker container name] (Docker コンテナー名) ボックスに、Docker コンテナーの一意の名前を入力します。In the Docker container name box, enter a unique name for your Docker container.

    b.b. 次のいずれかの Docker イメージを選びます。Choose one of the following Docker images:

    • [Predefined Docker image](定義済みの Docker イメージ) : Azure の既存の Docker イメージを指定します。Predefined Docker image: Specify a pre-existing Docker image from Azure.

      注意

      このボックス内の Docker イメージの一覧は、アーティファクトが自動的にデプロイされるように Azure Toolkit が修正する複数のイメージで構成されています。The list of Docker images in this box consists of several images that the Azure Toolkit has been configured to patch so that your artifact is deployed automatically.

    • カスタム Dockerfile: 自分のローカル コンピューターにある、以前に保存された Dockerfile を指定します。Custom Dockerfile: Specify a previously saved Dockerfile from your local computer.

      注意

      これは、独自の Dockerfile をデプロイする開発者向けのより高度な機能です。This is a more advanced feature for developers who want to deploy their own Dockerfile. ただし、Dockerfile が正しく構築されていることを確認するのは、このオプションを使用する開発者の責任です。However, it is up to developers who use this option to ensure that their Dockerfile is built correctly. Azure Toolkit はカスタム Dockerfile の内容を検証しないため、Dockerfile に問題がある場合はデプロイが失敗します。Because the Azure Toolkit does not validate the content in a custom Dockerfile, the deployment might fail if the Dockerfile has issues. また、Azure Toolkit はカスタム Dockerfile に Web アプリ アーティファクトが含まれていると想定しているため、HTTP 接続を開こうとします。In addition, because the Azure Toolkit expects the custom Dockerfile to contain a web app artifact, it attempts to open an HTTP connection. 開発者が別の種類のアーティファクトを発行すると、デプロイ後に無害なエラーが表示されることがあります。If developers publish a different type of artifact, they might receive innocuous errors after deployment.

    c.c. [ポートの設定] ボックスで、Docker コンテナーの一意の TCP ポート バインドを入力します。In the Port settings box, enter the unique TCP port binding for your Docker container.

  10. 上記の手順を完了したら、 [完了] をクリックします。After you have completed the preceding steps, click Finish.

Azure Toolkit により、Docker コンテナーでの Azure への Web アプリのデプロイが開始されます。The Azure Toolkit begins deploying your web app to Azure in a Docker container. バックグラウンドでデプロイされるように IntelliJ を構成していない場合は、 [Deploying to Azure](Azure にデプロイ中) 進行状況バーが表示されます。Unless you have configured IntelliJ to be deployed in the background, a Deploying to Azure progress bar appears.

デプロイの進行状況バー

アーティファクトの作成に関する追加情報Additional information about creating artifacts

デプロイの準備ができたアーティファクトを作成するには、次の操作を行います。To create a deployment-ready artifact, do the following:

  1. IntelliJ で、Web アプリ プロジェクトを開きます。Open your web app project in IntelliJ.

  2. [ファイル] をクリックし、 [プロジェクトの構造] をクリックします。Click File, and then click Project Structure.

    [プロジェクトの構造] コマンド

  3. 成果物を追加するには、緑のプラス記号 ( + ) をクリックし、次をクリックします: [Web Application: Archive](Web アプリケーション: アーカイブ)To add an artifact, click the green plus sign (+), and then click Web Application: Archive.

    [Web Application: Archive](Web アプリケーション: アーカイブ) コマンド

  4. [名前] ボックスで、アーティファクトの名前を入力し ( .war 拡張子は含めないでください)、 [OK] をクリックします。In the Name box, enter a name for your artifact (do not include the .war extension), and then click OK.

    アーティファクトの [名前] ボックス

IntelliJ でのアーティファクトの作成の詳細については、JetBrains Web サイトの「Configuring Artifacts (アーティファクトの構成)」を参照してください。For more information about creating artifacts in IntelliJ, see Configuring artifacts on the JetBrains website.

次の手順Next steps

Docker の他のリソースについては、公式の Docker の Web サイトを参照してください。For additional resources for Docker, see the official Docker website.

バグを報告したり、新機能をリクエストしたりするには、当社の GitHub リポジトリで問題を作成してください。To report bugs or request new features, create issues on our GitHub repository. または、Stack Overflow でタグ azure-java-tools を使用して質問してください。Or, ask questions on Stack Overflow with tag azure-java-tools.

Azure での Java の使用方法の詳細については、以下のリンクを参照してください。For more information about using Java with Azure, see the following links: