主要内容

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

compiler.package.DockerOptions

创建 Docker 选项对象

说明

小心

该函数仅支持 Linux® 操作系统。

opts = compiler.package.DockerOptions(results) 使用 compiler.build.Results 对象 opts 创建 DockerOptions 对象 resultsResults 对象由 compiler.build 函数创建。DockerOptions 对象作为输入传递给 compiler.package.docker 函数来指定构建选项。

示例

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

示例

opts = compiler.package.DockerOptions('ImageName',imageName) 使用 imageName 指定的图像名称创建一个默认的 DockerOptions 对象。

示例

opts = compiler.package.DockerOptions('ImageName',imageName,Name,Value) 创建一个默认的 DockerOptions 对象,其图像名称由 imageName 指定,其他选项则指定为一个或多个名称-值参量对。

示例

示例

全部折叠

使用 Linux 系统上独立应用程序的构建结果创建 DockerOptions 对象。

使用 magicsquare.m 创建一个独立应用程序并将构建结果保存到 compiler.build.Results 对象。

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

使用来自 compiler.build.standaloneApplication 函数的构建结果创建 DockerOptions 对象。

opts = compiler.package.DockerOptions(buildResults);

您可以使用点符号修改现有 DockerOptions 对象的属性值。例如,设置编译文件夹。

opts.DockerContext = 'myDockerFiles';

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

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

使用来自独立应用程序的构建结果创建 DockerOptions 对象,并使用名称-值参量对其进行自定义。

使用 magicsquare.m 创建一个独立应用程序并将构建结果保存到 compiler.build.Results 对象。

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

使用来自 compiler.build.standaloneApplication 函数的构建结果创建 DockerOptions 对象。使用名称-值参量指定图像名称和构建文件夹。

opts = compiler.package.DockerOptions(buildResults,...
'DockerContext','Docker/MagicSquare',...
'ImageName','magic-square-')
opts = 

  DockerOptions with properties:

                EntryPoint: 'magicsquare'
                 ImageName: 'magic-square-'
              RuntimeImage: ''
    AdditionalInstructions: {}
        AdditionalPackages: {}
        ExecuteDockerBuild: on
             ContainerUser: 'appuser'
             DockerContext: './Docker/MagicSquare'
            VerbosityLevel: 'verbose'

创建一个默认的 DockerOptions 对象来指定映像名称。

创建一个 DockerOptions 对象。

opts = compiler.package.DockerOptions('ImageName','helloworld')
opts = 

  DockerOptions with properties:

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

您可以使用点符号修改现有 DockerOptions 对象的属性值。例如,无需调用“docker build”即可填充 DockerContext 文件夹。

opts.ExecuteDockerBuild = 'Off'
opts = 

  DockerOptions with properties:

                EntryPoint: ''
                 ImageName: 'helloworld'
              RuntimeImage: ''
    AdditionalInstructions: {}
        AdditionalPackages: {}
        ExecuteDockerBuild: off
             ContainerUser: 'appuser'
             DockerContext: './helloworlddocker'
            VerbosityLevel: 'verbose'

使用映像名称创建 DockerOptions 对象并使用名称-值参量对其进行自定义。

创建一个 DockerOptions 对象。使用名称-值参量指定构建文件夹和入口点命令。

opts = compiler.package.DockerOptions('ImageName','myapp',...
'DockerContext','Docker/MyDockerApp',...
'EntryPoint',"exec top -b")
opts = 

  DockerOptions with properties:

                EntryPoint: 'exec top -b'
                 ImageName: 'myapp'
              RuntimeImage: ''
    AdditionalInstructions: {}
        AdditionalPackages: {}
        ExecuteDockerBuild: on
             ContainerUser: 'appuser'
             DockerContext: './Docker/MyDockerApp'
            VerbosityLevel: 'verbose'

输入参数

全部折叠

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

Docker 镜像的名称。它必须符合 Docker 命名规则。

示例: 'hello-world'

数据类型: char | string

名称-值参数

全部折叠

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 22.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

在图像启动时执行的命令,指定为字符向量或字符串标量。

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

数据类型: 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

自 R2023b 起

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

输出参量

全部折叠

Docker 映像构建选项,以 DockerOptions 对象形式返回。

限制

  • 从 R2020b 开始,只有独立应用程序可以打包到 Docker 映像中。

版本历史记录

在 R2020b 中推出