Main Content

compiler.package.docker

Linux オペレーティング システム上で MATLAB Compiler により生成されたファイルの Docker イメージを作成

R2020b 以降

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

  • R2020b の時点では、スタンドアロン アプリケーションのみを Docker® イメージにパッケージ化できます。

説明

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

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

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

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

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

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

すべて折りたたむ

Linux システムで、スタンドアロン アプリケーションから Docker イメージを作成します。

システムに Docker をインストールして構成します。

magicsquare.m を使用してスタンドアロン アプリケーションを作成し、ビルド結果を compiler.build.Results オブジェクトに保存します。

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

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

compiler.package.docker(buildResults);

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

magicsquare.m を使用してスタンドアロン アプリケーションを作成し、ビルド結果を compiler.build.Results オブジェクトに保存します。

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

Results オブジェクトを使用して Docker イメージをビルドし、追加オプションを名前と値の引数として指定します。

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

Linux システムで DockerOptions オブジェクトを使用して Docker イメージをカスタマイズします。

hello_world.m を使用してスタンドアロン アプリケーションを作成し、ビルド結果を compiler.build.Results オブジェクトに保存します。

buildResults = compiler.build.standaloneApplication('hello_world.m');

DockerOptions オブジェクトを作成して、カスタム イメージ名の設定や、Docker ビルド コマンドの無効化などの追加のビルド オプションを指定します。

opts = compiler.package.DockerOptions(buildResults,...
'ImageName','hellodocker');

ドット表記を使用して既存の DockerOptions オブジェクトのプロパティ値を変更できます。たとえば、'docker build' を呼び出さずに DockerContext フォルダーを作成します。

opts.ExecuteDockerBuild = 'Off';

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

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

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

mcc コマンドを使用して、スタンドアロン アプリケーションをビルドします。

mcc -o runmyapp -m myapp.m

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

compiler.package.docker('runmyapp','requiredMCRProducts.txt',...
'ImageName','launchapp','EntryPoint','runmyapp');

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

hello_world.m を使用してスタンドアロン アプリケーションを作成し、ビルド結果を compiler.build.Results オブジェクトに保存します。

buildResults = compiler.build.standaloneApplication('hello_world.m');

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

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

  DockerOptions with properties:

                EntryPoint: 'hello_world'
                 ImageName: 'hello_world'
              RuntimeImage: ''
    AdditionalInstructions: {}
        AdditionalPackages: {}
        ExecuteDockerBuild: on
             ContainerUser: 'appuser'
             DockerContext: './DockerImages'
            VerbosityLevel: 'verbose'

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

cd helloworldstandaloneApplication

compiler.package.docker('hello_world','requiredMCRProducts.txt',...
'Options',opts);

入力引数

すべて折りたたむ

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

インストール用のファイルとフォルダー。文字ベクトル、string スカラー、string 配列、または string の cell 配列として指定します。これらのファイルは、通常、MATLAB Compiler によって生成され、インストールされるアプリケーションの実行に必要な追加のファイルおよびフォルダーも含めることができます。特定のリリースで MATLAB Compiler によって生成されたファイルは、同じリリースの関数 compiler.package.docker を使用してパッケージ化できます。

例: 'myDockerFiles/'

データ型: char | string | cell

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

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

データ型: char | string

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

例: 'helloworld'

データ型: char | string

Docker オプション。DockerOptions オブジェクトとして指定します。

名前と値の引数

オプションのペアの引数を 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® 22.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

イメージの起動時に実行するコマンド。文字ベクトルまたは string スカラーとして指定します。

例: 'EntryPoint','exec top -b'

データ型: 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

R2023b 以降

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

例: 'RuntimeImage','mcrimage'

データ型: char | string

R2023b 以降

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

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

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

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

例: 'VerbosityLevel','concise'

データ型: char | string

バージョン履歴

R2020b で導入