构建Amazon IoT GreengrassDockerfile 中的容器映像 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

构建Amazon IoT GreengrassDockerfile 中的容器映像

Amazon提供了一个 Dockerfile,你可以下载并使用它来运行Amazon IoT GreengrassDocker 容器中的核心软件。Dockerfile 包含用于构建的源代码Amazon IoT Greengrass容器映像。

在构建之前Amazon IoT Greengrass容器映像,您必须配置 Dockerfile 才能选择Amazon IoT Greengrass你想安装的核心软件。您还可以配置环境变量以选择如何在安装过程中调配资源,并自定义其他安装选项。本部分介绍如何配置和构建Amazon IoT GreengrassDockerfile 中的 Docker 映像。

下载 Dockerfile 软件包

您可以下载Amazon IoT GreengrassGitHub 中的 Dockerfile 软件包:

https://github.com/aws-greengrass/aws-greengrass-docker/releases

下载软件包后,将内容提取到download-directory/aws-greengrass-docker-nucleus-version计算机上的文件夹。

指定Amazon IoT GreengrassCore 软件版本

在 Dockerfile 中使用以下构建参数来指定Amazon IoT Greengrass你想在Amazon IoT GreengrassDocker 映像。默认情况下,Docker 文件使用的最新版本Amazon IoT Greengrass核心软件。

GREENGRASS_RELEASE_VERSION

版本的Amazon IoT Greengrass核心软件。默认情况下,Docker 文件会下载 Greengrass 核心核心的最新可用版本。将值设置为要下载的核心版本。

设置环境变量

环境变量使您可以自定义方式Amazon IoT GreengrassCore 软件安装在 Docker 容器中。您可以为您的设置环境变量Amazon IoT GreengrassDocker 镜像以多种方式进行。

  • 要使用相同的环境变量创建多个映像,请直接在 Dockerfile 中设置环境变量。

  • 如果您使用docker run要启动容器,请在命令中将环境变量作为参数传递,或者在环境变量文件中设置环境变量,然后将该文件作为参数传递。有关在 Docker 中设置环境变量的更多信息,请参阅Docker 文档.

  • 如果您使用docker-compose up要启动容器,请在环境变量文件中设置环境变量,然后将该文件作为参数传递。有关在 Compose 中设置环境变量的更多信息,请参阅Docker 文档.

您可以配置以下环境变量:Amazon IoT GreengrassDocker 映像。

注意

请勿修改TINI_KILL_PROCESS_GROUPDockerfile 中的变量。此变量允许转发SIGTERM发送 PID 组中的所有 PID,以便Amazon IoT GreengrassDocker 容器停止时,核心软件可以正确关闭。

GGC_ROOT_PATH

(可选)容器内要用作根目录的文件夹的路径Amazon IoT Greengrass核心软件。

默认值:/greengrass/v2

PROVISION

(可选)确定是否Amazon IoT Greengrass核心条款Amazon资源的费用。

默认值: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指向提供的 IAM 角色的角色的角色的角色别名。AmazonGreengrass 核心设备的凭据。如果您的中不存在具有此名称的角色别名Amazon Web Services 账户,Amazon IoT Greengrass核心软件创建它并将其指向您指定的 IAM 角色。

默认值:GreengrassV2TokenExchangeRoleAlias

COMPONENT_DEFAULT_USER

(可选)系统用户和组的名称或 IDAmazon IoT Greengrass核心软件用来运行组件。指定用户和组,用冒号分隔。该组是可选的。举例来说,可以指定 ggc_user:ggc_groupggc_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 Greengrass核心软件。例如,您可以使用此选项来设置具有特定核心配置的新 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 GreengrassDockerfile 准备容器环境以运行Amazon IoT GreengrassCore 软件安装程序。您可以自定义在Amazon IoT Greengrass核心软件安装程序在 Docker 容器中运行。

构建Amazon IoT Greengrass图像

使用Amazon IoT GreengrassDockerfile 来构建Amazon IoT Greengrass容器映像。您可以使用 Docker CLI 或 Docker Compose CLI 构建映像并启动容器。您还可以使用 Docker CLI 构建映像,然后使用 Docker Compose 从该映像启动容器。

Docker
  1. 在主机上运行以下命令以切换到包含配置 Docker 文件的目录。

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. 运行以下命令构建Amazon IoT GreengrassDockerfile 中的容器映像。

    sudo docker build -t "platform/aws-iot-greengrass:nucleus-version" ./
Docker Compose
  1. 在主机上运行以下命令以切换到包含 Docker 文件和撰写文件的目录。

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. 运行以下命令以使用 Compose 文件构建Amazon IoT Greengrass容器映像。

    docker-compose -f docker-compose.yml build

你已成功创建Amazon IoT Greengrass容器映像。Docker 映像具有Amazon IoT Greengrass安装了核心软件。现在,您可以运行Amazon IoT GreengrassDocker 容器中的核心软件。