Main Content

compiler.package.microserviceDockerImage

MATLAB Compiler SDK により生成されたファイルを使用してマイクロサービスの Docker イメージを作成する

R2022a 以降

説明

compiler.package.microserviceDockerImage(results) は、compiler.build.Results オブジェクト results を使用して MATLAB® Compiler SDK™ により生成されたファイルの Docker® イメージを作成します。results オブジェクトは関数 compiler.build.productionServerArchive により作成されます。

compiler.package.microserviceDockerImage(results,Name,Value) は、compiler.build.Results オブジェクト results と、1 つ以上の名前と値の引数として指定された追加オプションを使用して、Docker イメージを作成します。オプションには、ビルド フォルダー、エントリ ポイント コマンド、イメージ名が含まれます。

compiler.package.microserviceDockerImage(results,'Options',opts) は、compiler.build.Results オブジェクト results と、MicroserviceDockerImageOptions オブジェクト opts で指定された追加オプションを使用して、Docker イメージを作成します。MicroserviceDockerImageOptions オブジェクトを使用する場合、名前と値の引数を使用して他のオプションを指定することはできません。

compiler.package.microserviceDockerImage(files,filepath,'ImageName',imageName) は、MATLAB Compiler SDK により生成された files を使用して、Docker イメージを作成します。Docker イメージ名は imageName で指定します。

compiler.package.microserviceDockerImage(files,filepath,'ImageName',imageName,Name,Value) は、MATLAB Compiler SDK により生成された files を使用して、Docker イメージを作成します。追加オプションは 1 つ以上の名前と値の引数として指定します。

compiler.package.microserviceDockerImage(files,filepath,'Options',opts) は、MATLAB Compiler SDK により生成された files と、MicroserviceDockerImageOptions オブジェクト opts で指定された追加オプションを使用して、Docker イメージを作成します。MicroserviceDockerImageOptions オブジェクトを使用する場合、名前と値の引数を使用して他のオプションを指定することはできません。

すべて折りたたむ

Production Server アーカイブからマイクロサービスの Docker イメージを作成します。

システムに Docker をインストールして構成します。詳細については、マイクロサービスの Docker イメージの作成の前提条件セクションを参照してください。

magicsquare.m を使用して Production Server アーカイブを作成し、ビルド結果を compiler.build.Results オブジェクトに保存します。

appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');
buildResults = compiler.build.productionServerArchive(appFile);

Results オブジェクトを関数 compiler.package.microserviceDockerImage への入力として渡して、Docker イメージをビルドします。

compiler.package.microserviceDockerImage(buildResults);

この関数により、現在の作業ディレクトリにある magicsquaremicroserviceDockerImage という名前のフォルダー内に以下のファイルが生成されます。

  • applicationFilesForMATLABCompiler/magicsquare.ctf — デプロイ可能なアーカイブ ファイル。

  • Dockerfile — Docker 実行時オプションを指定する Docker ファイル。

  • GettingStarted.txt — デプロイ情報が含まれるテキスト ファイル。

ホスト マシンでポート 9900 を使用してイメージを Docker にデプロイするには、システム ターミナルで次のコマンドを実行します。

docker run --rm -p 9900:9910 magicsquare

Linux® システムで名前と値の引数を使用してイメージ名とビルド ディレクトリを指定し、マイクロサービス イメージをカスタマイズします。

magicsquare.m を使用して Production Server アーカイブを作成し、ビルド結果を compiler.build.Results オブジェクトに保存します。

appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');
buildResults = compiler.build.productionServerArchive(appFile);

Results オブジェクトを使用して関数 compiler.package.microserviceDockerImage を呼び出します。名前と値のペアの引数を使用してイメージ名とビルド フォルダーを指定し、Docker イメージをビルドする呼び出しを無効にします。

compiler.package.microserviceDockerImage(buildResults,...
'ImageName','mymagicapp',...
'DockerContext','/home/mluser/Documents/MATLAB/docker',...
'ExecuteDockerBuild','Off');

この構文は、コンテキスト フォルダーに Docker ファイルを入れます。

生成されたファイルを調べた後に、コマンド docker build を使用して Docker イメージをビルドします。詳細については、Docker のドキュメンテーションを参照してください。

MicroserviceDockerImageOptions オブジェクトを使用して Docker イメージをカスタマイズします。

以下のコードを使用して、helloworld.m という名前の関数を作成します。

disp('Hello world!');

helloworld.m を使用して Production Server アーカイブを作成し、ビルド結果を compiler.build.Results オブジェクトに保存します。

buildResults = compiler.build.productionServerArchive('helloworld.m');

MicroserviceDockerImageOptions オブジェクトを作成して、追加のビルド オプションを指定します。

opts = compiler.package.MicroserviceDockerImageOptions(buildResults,...
'DockerContext','hellodocker')
opts = 

  MicroserviceDockerImageOptions with properties:

                 RoutesFile: ''
                 ImageName: 'helloworld-microservice'
              RuntimeImage: ''
    AdditionalInstructions: {}
        AdditionalPackages: {}
        ExecuteDockerBuild: on
             ContainerUser: 'appuser'
             DockerContext: './hellodocker'
            VerbosityLevel: 'verbose'

MicroserviceDockerImageOptions オブジェクトと Results オブジェクトを、Docker イメージをビルドするために、関数 compiler.package.microserviceDockerImage に入力として渡します。

compiler.package.microserviceDockerImage(buildResults,'Options',opts);

MATLAB Compiler SDK により生成されたファイルを使用して Docker イメージを作成し、イメージ名を指定します。

mcc コマンドを使用して Production Server アーカイブをビルドします。

mcc -W CTF:myapp -U magicsquare.m

生成されたファイルを関数 compiler.package.microserviceDockerImage に渡すことで、Docker イメージをビルドします。

compiler.package.microserviceDockerImage('myapp.ctf',...
'requiredMCRProducts.txt','ImageName','microapp');

MATLAB Compiler SDK により生成されたファイルと、MicroserviceDockerImageOptions オブジェクトを使用して Docker イメージをカスタマイズします。

helloworld.m を使用して Production Server アーカイブを作成し、ビルド結果を compiler.build.Results オブジェクトに保存します。

buildResults = compiler.build.productionServerArchive('helloworld.m');

MicroserviceDockerImageOptions オブジェクトを作成して、ビルド フォルダーなどの追加のビルド オプションを指定します。

opts = compiler.package.MicroserviceDockerImageOptions(buildResults,...    
'DockerContext','DockerImages')

ドット表記を使用して既存の MicroserviceDockerImageOptions オブジェクトのプロパティ値を変更できます。たとえば、Docker イメージをビルドする呼び出しを無効にします。

opts.ExecuteDockerBuild = 'Off';

関数 compiler.package.microserviceDockerImage にファイルおよびオプション オブジェクトを渡して、DockerContext フォルダーに Docker ファイルを入れます。

cd helloworldproductionServerArchive

compiler.package.microserviceDockerImage('helloworld.ctf',...
'requiredMCRProducts.txt','Options',opts);

入力引数

すべて折りたたむ

関数 compiler.build.productionServerArchive により作成されたビルド結果。compiler.build.Results オブジェクトとして指定します。

インストール用のファイルとフォルダー。文字ベクトル、string スカラー、string 配列、または string の cell 配列として指定します。これらのファイルのうち 1 つだけが、MATLAB Compiler SDK によって生成されたコード アーカイブ (CTF ファイル) でなければなりません。リストには、サービスの実行に必要な追加のファイルおよびフォルダーも含めることができます。特定のリリースで MATLAB Compiler SDK によって生成されたファイルは、同じリリースの関数 compiler.package.microserviceDockerImage を使用してパッケージ化できます。

例: ['helloworld.ctf','myDockerFiles/']

データ型: char | string | cell

requiredMCRProducts.txt ファイルへのパス。文字ベクトルまたは string スカラーとして指定します。このファイルは、MATLAB Compiler SDK により生成されます。このパスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。

例: '/home/mluser/Documents/MATLAB/magicsquare/requiredMCRProducts.txt'

データ型: char | string

Docker イメージの名前。Docker の命名規則に従っていなければなりません。

例: 'hello-world'

データ型: char | string

マイクロサービスの Docker オプション。MicroserviceDockerImageOptions オブジェクトとして指定します。

名前と値の引数

オプションのペアの引数を Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定する必要がありますが、ペアの順序は考慮されません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: 'ExecuteDockerBuild','on'

R2022b 以降

Docker イメージに渡す追加のコマンド。文字ベクトル、string スカラー、または文字ベクトルの cell 配列として指定します。コマンドは Dockerfile に追加され、イメージの生成時に実行されます。

有効な Dockerfile コマンドの詳細については、https://docs.docker.com/engine/reference/builder/ を参照してください。

例: 'AdditionalInstructions',{'RUN mkdir /myvol','RUN echo "hello world" > /myvol/greeting','VOLUME /myvol'}

データ型: char | string

R2022b 以降

Docker イメージにインストールする追加の Ubuntu® 20.04 パッケージ。文字ベクトル、string スカラー、または文字ベクトルの cell 配列として指定します。

例: 'AdditionalPackages','syslog-ng'

データ型: char | string

R2023b 以降

Docker コンテナーを実行する Linux ユーザーの名前。文字ベクトルまたは string スカラーとして指定します。この引数はシステムのユーザー命名規約に従っていなければなりません。指定したユーザーが作成時に存在しない場合、新しいユーザーが権限なしで作成されます。このプロパティが設定されていない場合、既定ではユーザー appuser、つまり DockerfileFROM コマンドで指定されたユーザーとしてコンテナーが実行されます。

例: 'ContainerUser','root'

データ型: char | string

Docker イメージがビルドされるビルド フォルダーへのパス。文字ベクトルまたは string スカラーとして指定します。このパスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。

パスを指定しない場合、関数は ImageNamedocker という名前のビルド フォルダーを現在の作業ディレクトリに作成します。

例: 'DockerContext','/home/mluser/Documents/MATLAB/docker/magicsquaredocker'

データ型: char | string

Docker イメージをビルドするためのフラグ。'on' または 'off'、もしくは数値または logical の 1 (true) か 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

  • このプロパティを 'on' に設定した場合、この関数は Docker イメージをビルドします。

  • このプロパティを 'off' に設定した場合、この関数は 'docker build' を呼び出さずに DockerContext フォルダーを作成します。

例: 'ExecuteDockerBuild','Off'

データ型: logical

Docker イメージの名前。文字ベクトルまたは string スカラーとして指定します。名前は Docker の命名規則に従っていなければなりません。Docker のリポジトリ名は小文字でなければなりません。メインの実行可能ファイルまたはアーカイブ ファイルの名前に大文字が使用されている場合、Docker イメージ名では大文字が小文字に置き換えられます。

例: 'ImageName','magicsquare'

データ型: char | string

R2023a 以降

カスタムの URL ルートを指定するサーバー上の JSON ファイルのパス。文字ベクトルまたは string スカラーとして指定します。

例: 'RoutesFile','routes.json'

データ型: char | string

R2023b 以降

MATLAB Runtime イメージの名前。文字ベクトルまたは string スカラーとして指定します。関数 compiler.runtime.createDockerImage を使用して、複数のアプリケーションを実行できるカスタムの MATLAB Runtime イメージを作成できます。指定しない場合、MATLAB Compiler™ は、パッケージ化されたアプリケーションのみを実行できる選択的な MATLAB Runtime イメージを生成します。

例: 'RuntimeImage','mcrimage'

データ型: char | string

R2023b 以降

出力の詳細レベル。次のオプションのいずれかとして指定します。

  • 'verbose' (既定) — コマンド 'docker pull' および 'docker build' によって発生する Docker 出力を含むすべての画面出力を表示します。

  • 'concise' — Docker 出力を除く進行状況の情報を表示します。

  • 'none' — 出力を表示しません。

例: 'VerbosityLevel','concise'

データ型: char | string

制限

  • R2022a では、この関数は Linux オペレーティング システムでのみサポートされています。

バージョン履歴

R2022a で導入