DOCKER_BASE_IMAGE プロパティおよび DOCKER_WEBAPPLOCATION プロパティは、設定ファイルから取得できます。また、これらの定義を MSBuild の実行に追加する必要はありません (これらのプロパティに関する詳細は、「
Docker へデプロイする MSBuild タスク」を参照してください)。
このメカニズムは次のとおりです:
1.DOCKER_BASE_IMAGE プロパティおよび DOCKER_WEBAPPLOCATION プロパティは、MSBuild の実行時に取得されて指定されます。
2.いずれかまたは両方のプロパティが空になっている場合、BuildEnvironment プロパティが検証されます。これは、これらのプロパティから情報を取得するために読み取る必要がある設定ファイル (.json) を指定するものです。
BuildEnvironment プロパティでは、ビルドが対応する環境を指定します。
たとえば、/ p: BuildEnvironment = dev とある場合、GeneXus のルートで docker.dev.json が検索されます。
このファイルの形式は、GeneXus で配布されている docker.prod.json と同じである必要があります。
(1)
このファイルが見つからない場合、次のようなエラーが発生します:
「Base Image と Image WebApp Location については docker.dev.json ファイルの既定値を使用します。
設定ファイルが見つからず、既定のパラメーターが設定されていません。Base Image と Image WebApp Location は空にできません」
3.MSBuild コマンドで、少なくとも、DOCKER_BASE_IMAGE および DOCKER_WEBAPPLOCATION のいずれかのプロパティが参照されず、BuildEnvironment プロパティも指定されていない場合、既定で docker.prod.json が読み取られ、ユーザーに警告が表示されます。
「Base Image と Image WebApp Location については docker.prod.json ファイルの既定値を使用します」
(1)Docker.prod.jsondocker.prod.json ファイルは、次のようなものです。
{
"Images": {
".NET Framework": "genexus/dotnet:4.6.2",
".NET": "mcr.microsoft.com/dotnet/aspnet:6.0",
"C#": "genexus/dotnet:4.6.2",
".NET Core": "mcr.microsoft.com/dotnet/aspnet:6.0",
"Java": "tomcat:10-jdk15-openjdk-oracle」
},
"CMDAppImages": {
".NET Framework": "genexus/dotnet:4.6.2",
".NET": "mcr.microsoft.com/dotnet/aspnet:6.0",
"C#": "genexus/dotnet:4.6.2",
".NET Core": "mcr.microsoft.com/dotnet/aspnet:6.0",
"Java": "openjdk:15」
},
"WebAppLocation": {
".NET Framework": "c:/inetpub/wwwroot/",
".NET": "/app",
"C#": "c:/inetpub/wwwroot/",
".NET Core": "/app",
"Java": "/usr/local/tomcat/webapps/」
},
"AppLocation": {
".NET Framework": "/app",
".NET": "/app",
"C#": "/app",
".NET Core": "/app",
"Java": "/usr/src/myapp」
}
}
注: .json ファイルは、 [ Generator ] MSBuild プロパティを考慮して読み取られます。このプロパティは、設定ファイルと同じ大文字と小文字を使用して設定する必要があります。
そうしないと、MSBuild の実行で次のエラーがスローされます: 「指定されたキーがディクショナリにありませんでした」
例:
MSbuild.exe /nologo /verbosity:normal /ToolsVersion:14.0 "c:\genexus\DeploymentTargets\Docker\deploy.msbuild" /p:Deplo
ySource="c:\kbaux\Deploy\JavaModel\Docker\kbauxJavaEnvironmentDeploy.war" /p:DOCKER_MAINTAINER="fullgxops <fullgxops@g
enexus.com>" /p:DOCKER_IMAGE_NAME="kbauxjavaenvironment" /p:GENERATOR="Java" /p:BuildEnvironment=dev /t:Deploy /l:File
Logger,Microsoft.Build.Engine;logfile=c:\fullgx\temp\DeployDocker.log
Docker へデプロイする MSBuild タスク