主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

compiler.package.microserviceDockerImage

使用 MATLAB Compiler SDK 生成的文件创建微服务 Docker 映像

自 R2022a 起

说明

compiler.package.microserviceDockerImage(results) 使用 compiler.build.Results 对象 resultsMATLAB® Compiler SDK™ 生成的文件创建一个 Docker® 映像。结果对象由 compiler.build.productionServerArchive 函数创建。

示例

compiler.package.microserviceDockerImage(results,Name,Value) 使用 compiler.build.Results 对象 results 和指定为一个或多个 名称-值参量的附加选项创建 Docker 映像。选项包括构建文件夹、入口点命令和图像名称。

示例

compiler.package.microserviceDockerImage(results,'Options',opts) 使用 compiler.build.Results 对象 resultsMicroserviceDockerImageOptions 对象 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 映像。附加选项被指定为一个或多个名称-值参量。

示例

compiler.package.microserviceDockerImage(files,filepath,'Options',opts) 使用 MATLAB Compiler SDK 生成的 filesMicroserviceDockerImageOptions 对象 opts 指定的其他选项创建 Docker 映像。如果您使用 MicroserviceDockerImageOptions 对象,则不能使用名称-值参量指定任何其他选项。

示例

示例

全部折叠

从生产服务器存档创建微服务 Docker 映像。

在您的系统上安装并配置 Docker。有关详细信息,请参阅创建微服务 Docker 镜像的前提条件部分。

使用 magicsquare.m 创建生产服务器存档并将构建结果保存到 compiler.build.Results 对象。

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

Results 对象作为输入传递给 compiler.package.microserviceDockerImage 函数来构建 Docker 映像。

compiler.package.microserviceDockerImage(buildResults);

该函数会在当前工作目录中名为 magicsquaremicroserviceDockerImage 的文件夹中生成以下文件:

  • applicationFilesForMATLABCompiler/magicsquare.ctf - 可部署存档文件。

  • Dockerfile - 指定 Docker Runtime 选项的 Docker 文件。

  • GettingStarted.txt - 包含部署信息的文本文件。

要使用计算机上的端口 9900 将映像部署到 Docker,请在系统终端中运行以下命令:

docker run --rm -p 9900:9910 magicsquare

在 Linux® 系统上使用名称-值参量自定义微服务映像,指定映像名称和构建目录。

使用 magicsquare.m 创建生产服务器存档并将构建结果保存到 compiler.build.Results 对象。

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

使用 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 创建生产服务器存档并将构建结果保存到 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'

MicroserviceDockerImageOptionsResults 对象作为输入传递给 compiler.package.microserviceDockerImage 函数来构建 Docker 映像。

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

使用 MATLAB Compiler SDK 生成的文件创建 Docker 映像并指定映像名称。

使用 mcc 命令构建生产服务器存档。

mcc -W CTF:myapp -U magicsquare.m

通过将生成的文件传递给 compiler.package.microserviceDockerImage 函数来构建 Docker 映像。

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

使用 MATLAB Compiler SDKMicroserviceDockerImageOptions 对象生成的文件自定义 Docker 映像。

使用 helloworld.m 创建生产服务器存档并将构建结果保存到 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 函数,用 Docker 文件填充 DockerContext 文件夹。

cd helloworldproductionServerArchive

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

输入参数

全部折叠

compiler.build.productionServerArchive 函数创建的构建结果,指定为 compiler.build.Results 对象。

要安装的文件和文件夹,指定为字符向量、字符串标量、字符串数组或字符串元胞数组。这些文件中必须有一个是由 MATLAB Compiler SDK 生成的代码存档(CTF 文件)。该列表还可以包括服务运行所需的任何其他文件和文件夹。您可以使用同一版本的 compiler.package.microserviceDockerImage 函数打包特定版本中由 MATLAB Compiler SDK 生成的文件。

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

数据类型: char | string | cell

requiredMCRProducts.txt 文件的路径,指定为字符向量或字符串标量。该文件由 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 映像的附加命令,指定为字符向量、字符串标量或字符向量元胞数组。命令被添加到 Dockerfile 并在映像生成期间执行。

有关有效 Dockerfile 命令的信息,请参阅 https://docs.docker.com/engine/reference/builder/

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

数据类型: char | string

自 R2022b 起

要安装到 Ubuntu® 映像中的附加 Docker 20.04 软件包,指定为字符向量、字符串标量或字符向量元胞数组。

示例: "AdditionalPackages","syslog-ng"

数据类型: char | string

自 R2023b 起

Linux 容器将以 Docker 用户的名称运行,指定为字符向量或字符串标量。该参量必须符合系统用户命名标准。如果指定的用户在创建时不存在,则将创建一个没有权限的新用户。如果未设置该属性,容器将默认以用户 appuser 运行,或者以 FROM 中的 Dockerfile 命令中指定的用户运行。

示例: "ContainerUser","root"

数据类型: char | string

构建 Docker 映像的构建文件夹的路径,指定为字符向量或字符串标量。该路径可以是相对于当前工作目录的路径,也可以是绝对路径。

如果未指定路径,该函数会在当前工作目录中创建一个名为 ImageNamedocker 的构建文件夹。

示例: "DockerContext","/home/mluser/Documents/MATLAB/docker/magicsquaredocker"

数据类型: char | string

用于构建 Docker 映像的标志,指定为 "on""off",或者指定为数字或逻辑值 1 (true) 或 0 (false)。值 "on" 等效于 true,值 "off" 等效于 false。因此,可以将此属性的值用作逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

  • 如果将此属性设置为 "on",则该函数将构建 Docker 映像。

  • 如果将此属性设置为 "off",则该函数将填充 DockerContext 文件夹而不调用“ docker build ”。

示例: "ExecuteDockerBuild","Off"

数据类型: logical

Docker 映像的名称,指定为字符向量或字符串标量。名称必须符合 Docker 命名规则。Docker 存储库 Docker 必须小写。如果主可执行文件或存档文件使用大写字母命名,则 Docker 映像名称中的大写字母将替换为小写字母。

示例: "ImageName","magicsquare"

数据类型: char | string

自 R2025a 起

要包含在安装程序中的可选 MATLAB Runtime 依赖项,指定为以下选项之一:

  • "none" - 使用此选项则不会将任何可选依赖项包含在安装程序中。使用此选项可最大程度减小生成的安装程序的大小。此选项是默认行为。

  • "all" - 使用此选项可将所有可选依赖项包含在安装程序中,包括图形化支持。

示例: "RuntimeDelivery","installer"

数据类型: char | string

自 R2023a 起

指定服务器上的自定义 URL 路由的 JSON 文件的路径,指定为字符向量或字符串标量。

示例: "RoutesFile","routes.json"

数据类型: char | string

自 R2023b 起

MATLAB Runtime 图像的名称,指定为字符向量或字符串标量。您可以使用 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 中推出