ここでは、Nginx を使用してフロントエンドアプリケーションを Docker コンテナにデプロイする手順を説明します。そのためには、
GeneXus IDE や
MSBuild コマンドから [
アプリケーションをデプロイ ] を使用できます。
1.GeneXus で、アプリケーションのメインオブジェクトを含む
Deployment Unit オブジェクトを作成した後、コンテキストメニューの [ アプリケーションをデプロイ ] オプションを選択します。
2. [ ターゲット ] コンボボックスから静的なフロントエンドのオプションを選択します。
3.プロパティダイアログで「Docker container」を選択します。
4. [ App location ] プロパティおよび [ Docker image name ] プロパティに有効な値を入力します。
5.最後に [ デプロイ ] ボタンを押します。
必要に応じて、 [ パッケージのみ ] チェックボックスを選択してデプロイパッケージを作成できます。この場合、パッケージは
ナレッジベースの Deploy\STATICFRONTEND\
\\context ディレクトリーに保存されます。
context ディレクトリーには、(Docker イメージがビルドされるときに、Angular アプリケーションのビルドに使用される) アプリケーションのソースファイルが含まれており、さらに、Dockerfile ファイルおよび nginx.conf ファイルも含まれています。
「静的なフロントエンドを Docker にデプロイする MSBuild タスク」を参照してください。
Docker イメージのビルドには、Docker for Windows が必要です。
このタイプのデプロイでは、「Linux Containers」に切り替えます。
注: [ パッケージのみ ] を選択しない限り、Docker エンジンがインストールされていないか、または稼働していない場合は、次のエラーがスローされます:
The command "docker info --format "{{.OSType}}"" exited with code 2.
エラー: Docker クライアントが見つかりません。
デプロイユニットには、1 つのメインオブジェクトが必要です。
- アプリケーションは Docker イメージでビルドされるため (npm install)、GeneXus でのビルドを回避できます (たとえば、ビルドマシンに npm がない場合)。
- Nginx バージョンのような Dockerfile の設定は、Dockerfile テンプレートで直接編集できます。このテンプレートは、GenExtensions\SmartDevices\Angular\deploy\docker\Templates 配下の GeneXus インストールにあります。
- Nginx 設定ファイル (nginx.conf) の場合も同様です。Create FrontEnd Package MSBuild の [ StaticServerConfigTemplatePath ] プロパティを使用して、使用したい config へのパスを指定できます。別のオプションは、GenExtensions\SmartDevices\Angular\deploy\docker\Templates 配下の nginx.conf ファイルを編集することです。
アプリケーションのサービスは、別の手順でデプロイする必要があります。それらのサービスはローカルまたはクラウドにデプロイすることができます (Azure サーバーレスまたは AWS サーバーレスを使用すると、サーバーレスアーキテクチャにもデプロイ可能)。
ほとんどの場合、サービスを実行する CORS を構成する必要があることを考慮してください。詳しくは、次のページを参照してください:
サーバーレスバックエンドを使用した Angular フロントエンドアプリケーションのデプロイ方法
GeneXus 17 Upgrade 11 以降