IOT边缘 IOTEDGE-制作镜像包或插件包:镜像包打包

时间:2024-09-04 15:05:07

镜像包打包

  1. 构建需要打包的项目

    构建项目,此处示例,构建好的文件存放在目录 /home/ModuleSDK-Demo 下

  2. 安装docker

    请确认您使用的系统已经安装Docker(Docker版本需要高于17.06,推荐18.06),安装方法可参照docker 安装教程

  3. 制作镜像

    1. 搜索基础镜像。
      docker search dotnet
    2. 根据您的工程配置,选择合适的镜像。

      镜像需要集成与您的工程配置兼容的.Net运行环境,下文使用的.Net版本仅作演示。

    3. 拉取镜像。
      docker pull mcr.microsoft.com/dotnet/runtime:2.1

      mcr.microsoft.com/dotnet/runtime:2.1 镜像是微软提供的镜像,非IoT团队发布,且IoT团队未提供任何官方镜像。该镜像在此仅做示例,IoT团队对该镜像的安全性不作保证,强烈建议用户自己封装镜像!

    4. 编写 Dockerfile 制作镜像。

      创建 Dockerfile,内容示例如下(具体可参考编写高效的Dockerfile )。

      下面提供了ModuleSDK-Demo镜像构建样例,仅作示例展示,请按需修改。

      # 基础镜像来源
      FROM mcr.microsoft.com/dotnet/runtime:2.1
      
      # 指定工作目录
      WORKDIR /app
      
      # 复制工程二进制文件和相关文件(即项目构建发布的产物)
      COPY ModuleSDK-Demo/ /app
      
      ENTRYPOINT ["dotnet", "ModuleSDK-Demo.dll"]
    5. 构建镜像
      docker build -t modulesdk-demo:1.0.0 -f Dockerfile .
    6. 查看打包完成的镜像
      docker images
      可以看到modulesdk-demo这个镜像已经制作完成。
      REPOSITORY       TAG         IMAGE ID       CREATED         SIZE
      modulesdk-demo   1.0.0     85ed3c3dc738   8 minutes ago    182MB

    上述步骤演示的是直接复制已编译好的工程文件来构建镜像,您也可以采取在构建镜像时编译的方式,具体可参照.Net 官方文档的指引。

  4. 镜像上传

    1. 上传镜像

      镜像上传需要使用镜像容器服务(SWR),首先需要开通 容器镜像服务 (SWR)。开通及使用请参照容器 镜像服务 (SWR)。

    2. 获取 SWR 登录指令

      获取登录指令请参照获取指令

      访问密钥即AK/SK(Access Key ID/Secret Access Key),获取的AK/SK将用于登录。

    3. 登录 SWR 仓库
      docker login -u [区域项目名]@[AK] -p [登录密钥] [镜像仓库地址]

      可以直接从控制台获取登录命令,如下图。

      镜像仓库地址 = swr.区域项目名称.myhuaweicloud.com

      例如,华北-北京一对应的镜像仓库地址为:swr.cn-north-1.myhuaweicloud.com

    4. 修改镜像所属组织

      修改镜像的组织名,以便推送到个人组织内。

      docker tag [OPTIONS] [镜像名:版本号] [镜像仓库地址/所属组织/镜像名:版本号]

      例如:

      docker tag modulesdk-demo:1.0.0 swr.cn-north-4.myhuaweicloud.com/iotedge/modulesdk-demo:1.0.0
    5. 上传镜像
      docker push [镜像仓库地址/所属组织/镜像名:版本号]
      例如:
      docker push swr.cn-north-4.myhuaweicloud.com/iotedge/modulesdk-demo:1.0.0
    6. 我的镜像查看上传结果

    7. 上传镜像后请在 SWR 将镜像设置为公开。

      查看镜像详情:

      编辑镜像:

      设置为公开:

      这一步很重要,关系到后面能否正常部署应用。

support.huaweicloud.com/devg-iotedge/iotedge_devg_0118.html