カスタム ベース レイヤーを使用した Docker イメージの作成
R2026bサポートされるプラットフォーム: Linux®
この例では、カスタマイズしたベース レイヤーを使用して Docker® イメージを作成する方法を示します。カスタム ベース レイヤーを作成すると、任意のバージョンの Linux またはその他のオペレーティング システムを基盤として使用し、コマンドを実行したり、追加の依存関係をインストールしたりできます。
Docker コンテナー イメージは、複数のレイヤーで構成されています。この例では 3 つのレイヤーを作成します。各レイヤーには、それまでのレイヤーの上に積み重ねられる一連のファイルシステム変更が含まれます。
カスタム ベース レイヤー (選択した OS)
セカンダリ レイヤー (MATLAB® Runtime)
アプリケーション レイヤー (スタンドアロン アプリケーション)
前提条件
開発マシンに MATLAB Compiler SDK™ がインストールされていることを確認します。
MATLAB コマンド ウィンドウで「
[~,msg] = system("docker version")」と入力して、開発マシンで Docker がインストールおよび構成されていることを確認します。メモ
WSL を使用する場合は、代わりに
[~,msg] = system("wsl docker version")を使用します。Docker がインストールされていない場合は、Docker の Web サイトの指示に従って、Docker のインストールと設定を行います。
docs.docker.com/engine/install/Windows® でマイクロサービスのイメージをビルドするには、Docker Desktop または Docker on Windows Subsystem for Linux v2 (WSL2) をインストールする必要があります。
Docker Desktop をインストールする場合は、
docs.docker.com/desktop/setup/install/windows-install/を参照してください。Docker on WSL2 をインストールする場合は、
https://www.mathworks.com/matlabcentral/answers/1758410-how-do-i-install-docker-on-wsl2を参照してください。
使用しているコンピューターはインターネットに接続されている必要があります。
メモ
一部のデプロイ可能なアーカイブ (Simulink® Compiler™ のアーティファクトなど) はクロスプラットフォーム互換ではなく、Docker で使用する Linux でビルドする必要があります。詳細については、Limitations for MATLAB Compiler and MATLAB Compiler SDKを参照してください。
compiler.build.standaloneApplication を使用したスタンドアロン アプリケーションの作成
MATLAB で、マイクロサービスとしてデプロイする MATLAB 関数を見つけます。この例では、次のコードを使用して関数 mirror.m を作成します。
function out = mirror(in)
out = in;compiler.build.standaloneApplication を使用してスタンドアロン アプリケーションを作成します。
buildResults = compiler.build.standaloneApplication("mirror.m","Verbose",true);
Docker を使用したカスタム ベース レイヤーのビルド
Dockerfile を使用してベース レイヤーをカスタマイズできます。
この例では、Dockerfile.customdeps という名前の新しいファイルを作成します。このファイルでは、Linux ディストリビューションを指定し、MATLAB Runtime に必要なすべての依存関係をインストールする必要があります。
Dockerfile にコマンドを追加して、ベース レイヤーの動作をカスタマイズできます。たとえば、apt 構成ファイルにプロキシ情報を追加します。
RUN echo 'Acquire::http::Proxy "http://yourproxyaddress:proxyport";' >> /etc/apt/apt.confまた、デプロイの要件を満たすために追加の依存関係をインストールすることもできます。
Ubuntu 24.04 用のパッケージはhttps://github.com/mathworks-ref-arch/container-images/tree/main/matlab-runtime-deps/から取得されます。内部 OS イメージが別の Linux ディストリビューションから派生している場合は、その OS 用の依存関係のリストを再作成する必要があります。
MATLAB コマンド ウィンドウで、Docker および作成した Dockerfile を使用してカスタム ベース レイヤー イメージをビルドします。
depsImageName = "mycompanybase:r2024b"; system("docker build -f Dockerfile.customdeps -t " + depsImageName + " .");
メモ
WSL を使用する場合は、代わりに「wsl docker build」と入力します。
MATLAB Runtime を使用したセカンダリ レイヤーの作成
作成したカスタム ベース レイヤーを使用する MATLAB Runtime Docker イメージ レイヤーを作成します。名前と値の引数を使用して、ベース レイヤー イメージと MATLAB Runtime イメージの名前を指定します。
runtimeImageName = "custom-matlabruntime:r2024b"; compiler.runtime.createDockerImage(buildResults, ... "BaseImage",depsImageName, ... "ImageName",runtimeImageName)
スタンドアロン アプリケーションのパッケージ化によるアプリケーション レイヤーの作成
スタンドアロン アプリケーション用の Docker イメージを作成します。作成した MATLAB Runtime Docker イメージの名前を compiler.package.docker 関数への入力として指定します。
compiler.package.docker(buildResults, ... "ImageName","mirror-micro","RuntimeImage",runtimeImageName);
Docker を使用してイメージをデプロイします。イメージを Docker Hub またはプライベート レジストリにプッシュする方法の詳細については、Docker のドキュメンテーションを参照してください。
参考
compiler.build.standaloneApplication | compiler.runtime.createDockerImage (MATLAB Compiler SDK) | compiler.package.docker
トピック
- MATLAB スタンドアロン アプリケーションの Docker イメージへのパッケージ化
- Create Microservice Using Custom Base Layer (MATLAB Compiler SDK)