本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
构建Amazon IoT GreengrassDockerfile 中的容器镜像
Amazon提供了一个 Docker 文件,您可以下载并使用它来运行Amazon IoT GreengrassDocker 容器中的核心软件。Docker 文件包含用于构建Amazon IoT Greengrass容器镜像。
在构建Amazon IoT Greengrass容器映像,您必须配置 Docker 文件以选择Amazon IoT Greengrass要安装的核心软件。您还可以配置环境变量以选择如何在安装期间预配资源,并自定义其他安装选项。本部分介绍如何配置和构建Amazon IoT GreengrassDockerfile 中的 Dockerfile 中的 Dockerfile。
下载 Dockerfile 软件包。
您可以下载Amazon IoT GreengrassGitHub 中的 Dockerfile 软件包:
https://github.com/aws-greengrass/aws-greengrass-docker/releases
下载软件包后,将内容解压缩到
文件夹。download-directory/
aws-greengrass-docker-nucleus-version
指定Amazon IoT GreengrassCore 软件版本
在 Docker 文件中使用以下构建参数来指定Amazon IoT Greengrass核心软件,您要在Amazon IoT GreengrassDocker 镜像。默认情况下,Docker 文件使用最新版本的Amazon IoT GreengrassCore 软件。
GREENGRASS_RELEASE_VERSION
-
的版本Amazon IoT GreengrassCore 软件。默认情况下,Dockerfile 会下载 Greengrass 核心的最新可用版本。将值设置为您要下载的核心的版本。
设置环境变量
环境变量使您可以自定义Amazon IoT Greengrass核心软件安装在 Docker 容器中。您可以为您的Amazon IoT GreengrassDocker 映像以多种方式。
您可以配置以下环境变量Amazon IoT GreengrassDocker 镜像。
请勿修改TINI_KILL_PROCESS_GROUP
变量。此变量允许转发SIGTERM
添加到 PID 组中的所有 PID,以便Amazon IoT Greengrass当 Docker 容器停止时,核心软件可以正确关闭。
GGC_ROOT_PATH
-
(可选)容器内的文件夹路径,用作Amazon IoT GreengrassCore 软件。
默认值:
/greengrass/v2
PROVISION
-
(可选)确定Amazon IoT GreengrassCore 条款Amazon资源的费用。
-
如果您指定
true
、Amazon IoT Greengrass核心软件将容器映像注册为Amazon IoT事物和规定AmazonGreengrass 核心设备需要的资源。这些区域有:Amazon IoT GreengrassCore 软件预置Amazon IoT事情,(可选)一个Amazon IoT事物组、IAM 角色和Amazon IoT角色别名。有关更多信息,请参阅运行Amazon IoT Greengrass在 Docker 容器中,并自动配置资源。 -
如果您指定
false
,则必须创建配置文件以提供给Amazon IoT Greengrass核心安装程序,指定使用Amazon资源和您手动创建的证书。有关更多信息,请参阅运行Amazon IoT Greengrass在 Docker 容器中使用手动资源配置。
默认值:
false
-
AWS_REGION
-
(可选)Amazon Web Services 区域的Amazon IoT Greengrass核心软件用于检索或创建所需Amazon资源的费用。
默认值:
us-east-1
. THING_NAME
-
(可选)Amazon IoT你注册为这个核心设备的东西。如果具有此名称的东西不存在于您的Amazon Web Services 账户,Amazon IoT Greengrass核心软件创建它。
您必须指定
PROVISION=true
来应用此参数。默认值:
GreengrassV2IotThing_
加上随机 UUID。 THING_GROUP_NAME
-
(可选)Amazon IoT事物组中添加此核心设备的Amazon IoT如果部署以此事物组为目标,则该组中的此核心设备和其他核心设备在连接到Amazon IoT Greengrass. 如果具有此名称的事物组不存在于Amazon Web Services 账户,Amazon IoT Greengrass核心软件创建它。
您必须指定
PROVISION=true
来应用此参数。 TES_ROLE_NAME
-
(可选)要使用的 IAM 角色的名称Amazon凭证,让 Greengrass 核心设备与Amazon服务。如果具有此名称的角色不存在于Amazon Web Services 账户,Amazon IoT Greengrass核心软件使用
GreengrassV2TokenExchangeRoleAccess
政策。此角色无权访问您托管组件项目的 S3 存储桶。因此,在创建组件时,您必须向对象的 S3 存储桶和对象添加权限。有关更多信息,请参阅授权核心设备与Amazon服务。默认值:
GreengrassV2TokenExchangeRole
TES_ROLE_ALIAS_NAME
-
(可选)Amazon IoT角色别名,该别名指向提供AmazonGreengrass 核心设备的凭证。如果具有此名称的角色别名不存在于Amazon Web Services 账户,Amazon IoT Greengrass核心软件创建它并将其指向您指定的 IAM 角色。
默认值:
GreengrassV2TokenExchangeRoleAlias
COMPONENT_DEFAULT_USER
-
(可选)系统用户和组的名称或 IDAmazon IoT Greengrass核心软件用于运行组件。指定用户和组,用冒号分隔。该组是可选的。举例来说,可以指定
ggc_user:ggc_group
或ggc_user
。-
如果以 root 用户身份运行,则默认为配置文件定义的用户和组。如果配置文件没有定义用户和组,则默认为
ggc_user:ggc_group
. 如果ggc_user
或者ggc_group
不存在,软件会创建它们。 -
如果以非 root 用户身份运行,Amazon IoT Greengrass核心软件使用该用户运行组件。
-
如果您没有指定组,则Amazon IoT Greengrass核心软件使用系统用户的主要组。
有关更多信息,请参阅配置运行组件的用户和组。
-
DEPLOY_DEV_TOOLS
-
(可选)定义是否在容器映像中下载和部署 Greengrass CLI 组件。您可以使用 Greengrass CLI 在本地开发和调试组件。
默认值:
false
注意 仅在开发环境中使用本地开发工具。不要在生产设备上指定此选项。
INIT_CONFIG
-
(可选)配置文件的路径,用于安装Amazon IoT GreengrassCore 软件。例如,您可以使用此选项来设置具有特定核心配置的新 Greengrass 核心设备,或者指定手动配置的资源。必须将配置文件挂载到您在此参数中指定的路径。
TRUSTED_PLUGIN
-
此功能适用于 v2.4.0 及更高版本的Greengrass 核组件.
(可选)要作为受信任插件加载的 JAR 文件的路径。使用此选项可以提供置备插件 JAR 文件,例如使用队列预置或者自定义预配置.
THING_POLICY_NAME
-
此功能适用于 v2.4.0 及更高版本的Greengrass 核组件.
(可选)Amazon IoT策略连接到此核心设备的Amazon IoT事物证书。如果Amazon IoT策略中不存在此名称的策略Amazon Web Services 账户的Amazon IoT Greengrass核心软件创建它。
您必须指定
PROVISION=true
来应用此参数。注意 这些区域有:Amazon IoT Greengrass核心软件创建了一个宽容Amazon IoT策略。您可以缩小此策略的范围,或者创建一个自定义策略,以限制您的使用案例的权限。有关更多信息,请参阅最低Amazon IoT用于 的 策略Amazon IoT Greengrass V2核心设备。
指定要安装的依赖关系
RUN 指令Amazon IoT GreengrassDocker 文件准备容器环境以运行Amazon IoT GreengrassCore 软件安装程序。您可以自定义在Amazon IoT Greengrass核心软件安装程序在 Docker 容器中运行。
构建Amazon IoT Greengrass映像
使用Amazon IoT Greengrass码头文件来构建Amazon IoT Greengrass容器镜像。您可以使用 Docker CLI 或 Docker 撰写 CLI 来构建映像并启动容器。您还可以使用 Docker CLI 构建映像,然后使用 Docker Compose 从该映像启动容器。
您已成功创建Amazon IoT Greengrass容器镜像。Docker 镜像具有Amazon IoT Greengrass已安装核心软件。现在,您可以运行Amazon IoT GreengrassDocker 容器中的核心软件。