最近のアクセス:
Docker にアプリケーションをデプロイする方法

このページの手順に沿って、Java 、.NET と .NET Core ジェネレーターで生成されたアプリケーションを Docker コンテナに簡単にデプロイして実行できます。
この手順はデータベースではなく、生成されたプログラムをデプロイするのに役立ちます。データベースのデプロイ方法については、「再編成をエクスポート」を参照してください。その他のオプションについては、「アプリケーションをデプロイ」を参照してください。
ソフトウェア要件:

Docker へのデプロイ手順

  1. アプリケーションを特定のターゲット (本番環境など) に初めてデプロイする際には、事前にナレッジベースに新しい環境を作成して、次のようにすることをお勧めします。
    • GeneXus で使用するコンピューターの Tomcat または IIS でアプリケーションをローカルに実行する
    • アプリケーションをターゲット (本番環境など) のデータベースに接続する
  2. [ すべてビルド ] を実行します。
  3. [ ビルド ] メニューに移動して、 [ アプリケーションをデプロイ ] オプションを選択します。
  4. [ デプロイメント ] 画面で、次のように設定します:
    1. デプロイに含めるメインオブジェクトを選択します。
    2. [ ターゲット ] で、 [ Docker Image ] オプションを選択します。
    3. 次のプロパティを指示どおりに設定します (すべてのフィールドに既定値があります):
      1. [ Docker base image ] プロパティ: 新しいイメージを作成する際にベースとして使用するイメージ
      2. [ Maintainer name ] プロパティ: イメージの作成者の名前 (イメージのメタデータの一部として設定される)
      3. [ Docker Environment variables ] プロパティ: イメージを事前にインスタンス化するすべての環境変数
      4. [ Image WebApp location ] プロパティ: Docker イメージ内のアプリケーション実行パス
      5. [ Docker image name ] プロパティ: 生成される Docker イメージの名前
  5. [ デプロイ ] ボタンをクリックして、Docker イメージを作成します。出力では、プロセスおよび生成されたファイルの場所に関するフィードバックが送信されます。
Windows のコマンドプロンプトで次のコマンドを実行すると、上記の手順で作成したものを含む Docker イメージが一覧表示されます。
Docker イメージ

Docker イメージの実行手順

Java

Java 環境では、Linux ベースのイメージが生成されます。以前作成したイメージ (Dockerfile のディレクトリーに配置されているもの) を使用してコンテナを実行するには、次のコマンドを実行します。run コマンドを参照してください。
docker run --rm -p 9999:8080 <Docker イメージ名>
入力値の説明:
  • --rm は、シャットダウン時にコンテナが削除されることを示します。
  • -p 9999:8080 は、コンテナのポート 8080 (Tomcat の既定値) がホストで 9999 として公開されていることを示します。
  • <Docker イメージ名> は、前の手順で作成したイメージの名前です。
このコマンドを正しく実行すると、http://localhost:9999/servlet/<Java パッケージ名>.<修飾オブジェクト名> からアプリケーションのメインオブジェクトにアクセスできるようになります。

C#

C# 環境では、Windows ベースのイメージが生成されます。以前作成したイメージ (Dockerfile のディレクトリーに配置されているもの) を使用してコンテナを実行するには、次のコマンドを実行します。
docker run --rm -p 9999:80 <Docker イメージ名>
入力値の説明:
  • --rm は、シャットダウン時にコンテナが削除されることを示します。
  • -p 9999:80 は、コンテナのポート 80 (IIS の既定値) がホストで 9999 として公開されていることを示します。
  • <Docker イメージ名> は、前の手順で作成したイメージの名前です。
注: しばらくすると、出力にエラーが表示されますが、このエラーは無視してかまいません (https://github.com/Microsoft/aspnet-docker/issues/69 を参照)。
ERROR ( message:Cannot find requested collection element.)
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
このコマンドを正しく実行すると、http://localhost:9999/<修飾オブジェクト名>.aspx からアプリケーションのメインオブジェクトにアクセスできるようになります。

.NET Core

.NET Core 環境では、Linux ベースのイメージが生成されます。以前作成したイメージを使用してコンテナを実行するには、次のコマンドを実行します。
docker run --rm -p 9999:80 <Docker イメージ名>
入力値の説明:
  • --rm は、シャットダウン時にコンテナが削除されることを示します。
  • -p 9999:80 は、ポート 80 (Web の既定値) がホストで 9999 として公開されていることを示します。
  • <Docker イメージ名> は、前の手順で作成したイメージの名前です。
このコマンドを正しく実行すると、http://localhost:9999/<修飾オブジェクト名>.aspx からアプリケーションのメインオブジェクトにアクセスできるようになります。

制限

  • 既定の Docker ベースイメージを使用する際には、次の点に留意してください。
  • Java で作成したデプロイパッケージ (war) は、Tomcat 8.x と互換性があります。
  • .NET で作成したデプロイパッケージは、IIS 8 (以上) と互換性があります。

参考情報

よくある質問

1) アプリケーションを実行したい場所に、既に複数のイメージがあります。そこにアプリケーションをデプロイできますか。
はい、できます。GeneXus で使用される既定のベースイメージは、 [ Docker base image ] プロパティで変更できます。このプロパティで独自のイメージを設定できます。コンピューター上にないイメージは、Docker クライアントがレジストリから取得します。[ Image WebApp location ] プロパティの変更も必要になる場合があることに留意してください。
(*) GeneXus 16 Upgrade 9 以降、「Docker for windows」を使用しなくても Dockerfile を生成できます。そのためには、この機能を使用して、通常どおり Docker にデプロイするためのオプションを選択します。
この場合、「warning: Dockerfile successfully created but no docker image was generated because Docker client was not found」という警告が表示されます。




サブページ
Created: 18/10/29 01:06 by Admin Last update: 21/05/20 01:25 by Admin
カテゴリ
Powered by GXwiki 3.0