最近のアクセス:
Docker へデプロイする MSBuild タスク

Docker へデプロイするためにパッケージを設定して Docker イメージをビルドする MSBuild スクリプトがあります。
Docker は外部ターゲットです。すべての外部ターゲットに対して、GitHub デプロイ ターゲット ソリューションを使用してデプロイします。
Docker イメージをビルドするために必要なファイルがすべて含まれたパッケージを設定するか、パッケージの作成とイメージのビルドの両方を行うことができます。
これは定義する必要がある CI パイプラインによって異なります。GeneXus アプリケーションがビルドされるマシンに Docker イメージをビルドする要件がない場合は、パッケージをセットアップして、Docker エンジンを実行する場所に移動できます。
ここでは、パッケージの作成とイメージのビルドを別の手順として説明します。これらすべての手順を GeneXus 内で実行できる [ アプリケーションをデプロイ ] の使用も検討してください。
概要

アプリケーションをデプロイする MSBuild タスク」(デプロイの作成とパッケージの作成) に従い、2 つの基本的な MSBuild スクリプトを実行したら、次の MSBuild スクリプトを実行して Docker イメージをビルドできます。

パッケージを作成する

この手順で、docker build および docker run を実行するために適切なパッケージを作成します。既定では、コンテキストフォルダは、MSBuild のプロパティとして指定される DeploySource のルートディレクトリー配下に作成されます。 [ DeployDirectory ] プロパティを使用してこれを変更できます。
Kubernetes (K8S) の設定は Redis の設定と同様にオプションです。
MSBuild.exe  /ToolsVersion:4.0 "C:\Genexus\CreateCloudPackage.msbuild"
/p:TargetId="DOCKER"
/p:CreatePackageScript="createpackage.msbuild"
/p:CreatePackageTarget="CreatePackage"
/p:GXDeployFileProject=<path to the .gxdproj file>
/p:DeploySource="C:\models\Testdeploy3\NETSQLServer003\Deploy\DOCKER\DeploymentUnit3_20220428101527.zip"
/p:WebSourcePath="C:\models\Testdeploy3\NETSQLServer003\web"
/p:ProjectName="DeploymentUnit3_20220428101527"
/p:DeploymentUnit="DeploymentUnit3"
/p:GX_PROGRAM_DIR="C:\Genexus"
/p:DOCKER_CONTAINER_RUNTIME="Default"
/p:DOCKER_IMAGE_REGISTRY="DockerHub"
/p:DOCKER_MAINTAINER="Sabrina <Sabrina@example.com>"
/p:DOCKER_WEBAPPLOCATION="/app"
/p:K8S_GENERATE_KUBERNETES="True"
/p:K8S_NAMESPACE="default"
/p:K8S_INITIAL_REPLICAS="2"
/p:K8S_SERVICE_TYPE="LoadBalancer"
/p:K8S_ENABLE_REDIS="True"
/p:DOCKER_ENVVARS=""
/t:CreatePackage
 
作成されたパッケージには次のものが含まれます:
  • アプリケーションバイナリ
  • Dockerfile
特に、.NET の Web および CMD アプリケーションの場合は、コンテキストディレクトリーに Dockerfile と temp ディレクトリーが含まれ、temp ディレクトリーには解凍されたアプリケーション全体が含まれます。
Kubernetes を有効にすると、たとえば、次のものが含まれます:
イメージ:51130.png
Java Web の場合は .War ファイルおよび Dockerfile が含まれます。CMD アプリケーションの場合は、コンテキストフォルダにアプリケーションの JAR ファイルおよび Dockerfile が含まれ、Drivers ディレクトリーにすべての依存関係が含まれます。
イメージ:51131.png
したがって、そのディレクトリー全体を Docker デーモンのある任意のマシンにコピーすると、イメージをビルドして実行できます。

Docker イメージをビルドする

パッケージを設定したら、次の MSBuild コマンドを実行し、Docker イメージをビルドして取得できます:
MSBuild.exe /ToolsVersion:4.0 "C:\Genexus\DeploymentTargets\Docker\deploy.msbuild" 
/p:DOCKER_IMAGE_NAME="nameprojectnetsqlserver" 
/p:DeploySource="C:\models\NameProject\NETSQLServer003\Deploy\DOCKER\DeploymentUnit_20220430215655.zip" 
/p:CreateCloudPackage ="false"
/t:Deploy
Docker イメージを実行するには、レジストリーにプッシュしてから、docker run コマンドを使用して実行する必要があります。

備考 

互換性の問題に対処するために、引き続き DeploymentTargets\Docker フォルダの deploy.msbuild スクリプトを使用して両方のタスク (パッケージ生成と Docker イメージのビルド) を実行できます。
そのために [ CreateCloudPackage ] プロパティが使用されます。これが割り当てられていない場合、または True に設定されている場合に、パッケージが作成されます。
False の場合のみパッケージが作成されず、イメージのビルドのみが実行されます (これは前の手順で作成しておく必要があります)。

使用可能バージョン

Docker へのデプロイを 2 つの手順に分割することは、GeneXus 17 Upgrade 10 以降でサポートされます。




サブページ
Created: 22/03/14 00:48 by Admin Last update: 23/05/31 20:53 by Admin
カテゴリ
Powered by GXwiki 3.0