华为云用户手册

  • Go语言构建 工具版本 内置工具 go-1.10.3 go 1.10.3、git、gcc 4.8.5、gcc-c++ 4.8.5 go-1.11.6 go 1.11.6、git、gcc 4.8.5、gcc-c++ 4.8.5 go-1.12.1 go 1.12.1、git、gcc 4.8.5、gcc-c++ 4.8.5 go-1.13.1 go 1.13.1、git、gcc 4.8.5、gcc-c++ 4.8.5 go-1.14 go 1.14、git、gcc 4.8.5、gcc-c++ 4.8.5 go-1.15 go 1.15、git、gcc 4.8.5、gcc-c++ 4.8.5 go-1.16 go 1.16、git、gcc 4.8.5、gcc-c++ 4.8.5 go-1.17 go 1.17、git、gcc 4.8.5、gcc-c++ 4.8.5 go-1.18 go 1.18、git、gcc 4.8.5、gcc-c++ 4.8.5 go-1.19 go 1.19、git、gcc 4.8.5、gcc-c++ 4.8.5 go-1.20 go 1.20、git、gcc 4.8.5、gcc-c++ 4.8.5
  • Gnu-arm构建 EulerOS作为基础镜像,预装make、gcc、g++、32位C运行库、二进制工具库等软件,提供以下三种工具版本: gnuarm201405 安装Codesourcery公司基于GCC推出的ARM交叉编译工具,可用于交叉编译ARM系统中包括裸机程序、u-boot、Linux内核、文件系统和应用程序在内的所有环节代码。 gnuarm-linux-gcc-4.4.3 符合EABI标准,是Linux早期版本的交叉编译器。 gnuarm-7-2018-q2-update 具有基于Arm Cortex-M和Cortex-R处理器的设备上裸机软件开发所必需的Arm嵌入式GCC编译器、库和其他GNU工具。 工具版本 内置工具 gnuarm201405 arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu、git、wget 1.14、zip 3.0、unzip 6.0、gcc-c++ 4.8.5、bzip2 1.0.6、file 5.11、glibc.i686 2.17、ncurses-devel.i686 2.9、binutils-devel.i686 2.27、zlib 1.2.7 gnuarm-linux-gcc-4.4.3 arm-linux-gcc-4.4.3-20100728、git、wget 1.14、zip 3.0、unzip 6.0、gcc-c++ 4.8.5、bzip2 1.0.6、file 5.11、glibc.i686 2.17、ncurses-devel.i686 5.9、binutils-devel.i686 2.27、zlib 1.2.7、gzip 1.5 gnuarm-7-2018-q2-update gcc-arm-none-eabi-7-2018-q2-update-linux2、git、wget 1.14、zip 3.0、unzip 6.0、gcc-c++ 4.8.5、bzip2 1.0.6、file 5.11、glibc.i686 2.17、ncurses-devel.i686 5.9、binutils-devel.i686 2.27、zlib 1.2.7、gzip 1.5
  • gulp构建 工具版本 内置工具 nodejs8.11.2 node v8.11.2、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs10.1.0 node v10.1.0、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4 autoconf 2.69、libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs10.15.3 node v10.15.3、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4 autoconf 2.69、libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs12.7.0 node v12.7.0、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4 autoconf 2.69、libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs13 node v13、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs14 node v14、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs15 node v15、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs16 node v16、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs18 node v18、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs20 node v20、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0
  • Cmake构建 工具版本 内置工具 cmake2.8.12-gcc4.8.5 cmake 2.8.12、OpenJDK 1.8.0_191、git、wget 1.14、bzip2 1.0.6、make 3.82 gcc 4.8.5、gcc-c++ 4.8.5、libstdc++-devel 4.8.5、zlib-devel 1.2.7、libgcc.i686 4.8.5、libgcc.x86_64 4.8.5 cmake2.8.12-gcc5.5.0 cmake 2.8.12、OpenJDK 1.8.0_191、git、wget 1.14、bzip2 1.0.6、make 3.82 gcc 5.5.0、gcc-c++ 4.8.5、libstdc++-devel 4.8.5、zlib-devel 1.2.7 libgcc.i686 4.8.5、libgcc.x86_64 4.8.5 cmake2.8.12-gcc6.4.0 cmake 2.8.12、OpenJDK 1.8.0_191、git、wget 1.14、bzip2 1.0.6、make 3.82 gcc 6.4.0、gcc-c++ 4.8.5、libstdc++-devel 4.8.5、zlib-devel 1.2.7 libgcc.i686 4.8.5、libgcc.x86_64 4.8.5 cmake2.8.12-gcc7.3.0 cmake 2.8.12、OpenJDK 1.8.0_191、git、wget 1.14、bzip2 1.0.6、make 3.82 gcc 7.3.0、gcc-c++ 4.8.5、libstdc++-devel 4.8.5、zlib-devel 1.2.7 libgcc.i686 4.8.5、libgcc.x86_64 4.8.5 cmake3.10.1-gcc4.8.5 cmake 3.10.1、OpenJDK 1.8.0_191、git、wget 1.14、bzip2 1.0.6、make 3.82 gcc 4.8.5、gcc-c++ 4.8.5、libstdc++-devel 4.8.5、zlib-devel 1.2.7、libgcc.i686 4.8.5、libgcc.x86_64 4.8.5 cmake3.10.1-gcc5.5.0 cmake 3.10.1、OpenJDK 1.8.0_191、git、wget 1.14、bzip2 1.0.6、make 3.82 gcc 5.5.0、gcc-c++ 4.8.5、libstdc++-devel 4.8.5、zlib-devel 1.2.7 libgcc.i686 4.8.5、libgcc.x86_64 4.8.5、isl 0.15、mpfr 2.4.2、gmp 4.3.2、mpc 0.8.1 cmake3.10.1-gcc6.4.0 cmake 3.10.1、OpenJDK 1.8.0_191、git、wget 1.14、bzip2 1.0.6、make 3.82 gcc 6.4.0、gcc-c++ 4.8.5、libstdc++-devel 4.8.5、zlib-devel 1.2.7 libgcc.i686 4.8.5、libgcc.x86_64 4.8.5、isl 0.15、mpfr 2.4.2、gmp 4.3.2、mpc 0.8.1 cmake3.10.1-gcc7.3.0 cmake 3.10.1、OpenJDK 1.8.0_191、git、wget 1.14、bzip2 1.0.6、make 3.82 gcc 7.3.0、gcc-c++ 4.8.5、libstdc++-devel 4.8.5、zlib-devel 1.2.7 libgcc.i686 4.8.5、libgcc.x86_64 4.8.5、isl 0.16.1、mpfr 3.1.4、gmp 6.1.0、mpc 1.0.3 cmake3.15.5-gcc8.3.0 cmake 3.15.5、OpenJDK 1.8.0_191、git、wget 1.14、bzip2 1.0.6、make 3.82 gcc 8.3.0、gcc-c++ 4.8.5、libstdc++-devel 4.8.5、zlib-devel 1.2.7、libgcc.i686 4.8.5、libgcc.x86_64 4.8.5 cmake3.16.0-gcc9.2.0 cmake 3.16.0、OpenJDK 1.8.0_191、git、wget 1.14、bzip2 1.0.6、make 3.82 gcc 9.2.0、gcc-c++ 4.8.5、libstdc++-devel 4.8.5、zlib-devel 1.2.7、libgcc.i686 4.8.5、libgcc.x86_64 4.8.5 cmake3.16.5-gcc7.3.0 cmake 3.16.5、OpenJDK 1.8.0_191、git、wget 1.14、bzip2 1.0.6、make 3.82 gcc 7.3.0、gcc-c++ 4.8.5、libstdc++-devel 4.8.5、zlib-devel 1.2.7、libgcc.i686 4.8.5、libgcc.x86_64 4.8.5 cmake3.26.5-gcc13.1.0 cmake 326.5、OpenJDK 1.8.0_191、git、wget 1.14、bzip2 1.0.6、make 3.82 gcc 13.1.0、gcc-c++ 4.8.5、libstdc++-devel 4.8.5、zlib-devel 1.2.7、libgcc.i686 4.8.5、libgcc.x86_64 4.8.5
  • Gradle构建 构建环境 内置工具 基本环境 git、zip 3.0、unzip 6.0、curl 7.29.0、wget 1.14 可选环境 Gradle Gradle 2.13、 Gradle 2.14.1、Gradle 3.3、Gradle 4.1、Gradle 4.2、Gradle 4.3、Gradle 4.4、Gradle 4.5、Gradle 4.6、Gradle 4.7、Gradle 4.8、Gradle 4.9、Gradle 5.0、Gradle 5.1、Gradle 5.2、Gradle 5.3、Gradle 5.4、Gradle 5.5、Gradle 5.6、Gradle 6.0、Gradle 6.1、Gradle 6.2、Gradle 6.3、Gradle 6.4、Gradle 6.5、Gradle 6.6、Gradle 6.7、Gradle 6.8、Gradle 6.9、Gradle 7.0、Gradle 7.1、Gradle 7.2、Gradle 7.3、Gradle 8.0、Gradle 8.2.1 JDK OpenJDK 1.7、OpenJDK 1.8、OpenJDK 1.9、OpenJDK 10、OpenJDK 11、OpenJDK 12、OpenJDK 13、OpenJDK 14、OpenJDK 15、OpenJDK 16、OpenJDK 17
  • SetupTool构建/PyInstaller构建 工具版本 内置工具 Python2.7 Python 2.7、setuptools 39.1.0、pip 10.0.1、pyinstaller、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、gcc 4.8.5、gcc-c++ 4.8.5、libgcc.x86_64 4.8.5、libgcc.i686 4.8.5、libtool 2.4.2 automake 1.13.4、autoconf 2.69、zlib 1.2.7、zlib-devel 1.2.7、openssl-devel 1.0.2k Python3.5 Python 3.5、setuptools 39.1.0、pip 10.0.1、pyinstaller、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、gcc 4.8.5、gcc-c++ 4.8.5、libgcc.x86_64 4.8.5、libgcc.i686 4.8.5、libtool 2.4.2 automake 1.13.4、autoconf 2.69、zlib 1.2.7、zlib-devel 1.2.7、openssl-devel 1.0.2k Python3.6 Python 3.6、setuptools 39.1.0、pip 10.0.1、pyinstaller、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、gcc 4.8.5、gcc-c++ 4.8.5、libgcc.x86_64 4.8.5、libgcc.i686 4.8.5、libtool 2.4.2 automake 1.13.4、autoconf 2.69、zlib 1.2.7、zlib-devel 1.2.7、openssl-devel 1.0.2k Python3.7 Python 3.7、setuptools 39.1.0、pip 10.0.1、pyinstaller、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、gcc 4.8.5、gcc-c++ 4.8.5、libgcc.x86_64 4.8.5、libgcc.i686 4.8.5、libtool 2.4.2 automake 1.13.4、autoconf 2.69、zlib 1.2.7、zlib-devel 1.2.7、openssl-devel 1.0.2k Python3.8 Python 3.8、setuptools 39.1.0、pip 10.0.1、pyinstaller、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、gcc 4.8.5、gcc-c++ 4.8.5、libgcc.x86_64 4.8.5、libgcc.i686 4.8.5、libtool 2.4.2 automake 1.13.4、autoconf 2.69、zlib 1.2.7、zlib-devel 1.2.7、openssl-devel 1.0.2k Python3.9 Python 3.9、setuptools 39.1.0、pip 10.0.1、pyinstaller、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、gcc 4.8.5、gcc-c++ 4.8.5、libgcc.x86_64 4.8.5、libgcc.i686 4.8.5、libtool 2.4.2 automake 1.13.4、autoconf 2.69、zlib 1.2.7、zlib-devel 1.2.7、openssl-devel 1.0.2k Python3.10 Python 3.10、setuptools 39.1.0、pip 10.0.1、pyinstaller、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、gcc 4.8.5、gcc-c++ 4.8.5、libgcc.x86_64 4.8.5、libgcc.i686 4.8.5、libtool 2.4.2 automake 1.13.4、autoconf 2.69、zlib 1.2.7、zlib-devel 1.2.7、openssl-devel 1.0.2k Python3.11 Python 3.11、setuptools 39.1.0、pip 10.0.1、pyinstaller、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、gcc 4.8.5、gcc-c++ 4.8.5、libgcc.x86_64 4.8.5、libgcc.i686 4.8.5、libtool 2.4.2 automake 1.13.4、autoconf 2.69、zlib 1.2.7、zlib-devel 1.2.7、openssl-devel 1.0.2k
  • Grunt构建 工具版本 内置工具 nodejs8.11.2 node v8.11.2、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs10.1.0 node v10.1.0、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4 autoconf 2.69、libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs10.15.3 node v10.15.3、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4 autoconf 2.69、libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs12.7.0 node v12.7.0、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4 autoconf 2.69、libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs13 node v13、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs14 node v14、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs15 node v15、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs16 node v16、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs18 node v18、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs20 node v20、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0
  • mono构建 工具版本 内置工具 mono6-msbuild16-dotnetcoresdk8.0 预装msbuildv16.1.76、nuget、4.8版本.NET Framework及其他常用工具,项目中引用了4.0以及.NET Core 8.0以上版本.NET Framework时选择此镜像(向前兼容历史任务,Msbuild-all镜像暂时不兼容此镜像)。 mono6-msbuild16-dotnetcoresdk6.0 预装msbuildv16.1.76、nuget、4.8版本.NET Framework及其他常用工具,项目中引用了4.0以及.NET Core 6.0以上版本.NET Framework时选择此镜像(向前兼容历史任务,Msbuild-all镜像暂时不兼容此镜像)。 mono6-msbuild16-dotnetcoresdk5.0 预装msbuildv16.1.76、nuget、4.8版本.NET Framework及其他常用工具,项目中引用了4.0以及.NET Core 5.0以上版本.NET Framework时选择此镜像(向前兼容历史任务,Msbuild-all镜像暂时不兼容此镜像)。 mono6-msbuild16-dotnetcoresdk3.1 预装msbuildv16.1.76、nuget、4.8版本.NET Framework及其他常用工具,项目中引用了4.0以及.NET Core 3.1以上版本.NET Framework时选择此镜像(向前兼容历史任务,Msbuild-all镜像暂时不兼容此镜像)。 mono6-msbuild16-dotnetcoresdk3.0 预装msbuildv16.1.76、nuget、4.8版本.NET Framework及其他常用工具,项目中引用了4.0以及.NET Core 3.0以上版本.NET Framework时选择此镜像(向前兼容历史任务,Msbuild-all镜像暂时不兼容此镜像)。 mono6-msbuild16-dotnetcoresdk2.2 预装msbuildv16.1.76、nuget、4.8版本.NET Framework及其他常用工具,项目中引用了4.0以及.NET Core 2.2以上版本.NET Framework时选择此镜像(向前兼容历史任务,Msbuild-all镜像暂时不兼容此镜像)。 mono6-msbuild16-dotnetcoresdk2.1 预装msbuildv16.1.76、nuget、4.8版本.NET Framework及其他常用工具,项目中引用了4.0以及.NET Core 2.1以上版本.NET Framework时选择此镜像(向前兼容历史任务,Msbuild-all镜像暂时不兼容此镜像)。
  • Npm构建 工具版本 内置工具 nodejs8.11.2 node v8.11.2、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs10.1.0 node v10.1.0、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4 autoconf 2.69、libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs10.15.3 node v10.15.3、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4 autoconf 2.69、libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs12.7.0 node v12.7.0、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4 autoconf 2.69、libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs13 node v13、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs14 node v14、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs15 node v15、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs16 node v16、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs18 node v18、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs20 node v20、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0
  • Yarn构建 工具版本 内置工具 nodejs8.11.2 node v8.11.2、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs10.1.0 node v10.1.0、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4 autoconf 2.69、libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs10.15.3 node v10.15.3、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4 autoconf 2.69、libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs12.7.0 node v12.7.0、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0 make 3.82、curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4 autoconf 2.69、libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs13 node v13、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs14 node v14、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs15 node v15、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs16 node v16、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs18 node v18、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0 nodejs20 node v20、OpenJDK 1.8.0_40、git、wget 1.14、zip 3.0、unzip 6.0、make 3.82 curl 7.29.0、gcc 4.8.5、gcc-c++ 4.8.5、ant 1.9.4、automake 1.13.4、autoconf 2.69 libtool 2.4.2、python-devel 2.7.5、kernel-headers 3.10.0
  • Maven构建 工具版本 内置工具 maven3.9.5-jdk17 maven 3.9.5、OpenJDK 17、zip 3.0、unzip 6.0、curl 7.29.0、wget 1.14 maven3.8.5-jdk17 maven 3.8.5、OpenJDK 17、zip 3.0、unzip 6.0、curl 7.29.0、wget 1.14 maven3.6.3-jdk11 maven 3.6.3、OpenJDK 11、zip 3.0、unzip 6.0、curl 7.29.0、wget 1.14 maven3.6.1-jdk10 maven 3.6.1、OpenJDK 10.0.2、zip 3.0、unzip 6.0、curl 7.29.0、wget 1.14 maven3.5.3-jdk8-open maven 3.5.3、OpenJDK 1.8.0_40、curl 7.29.0、wget 1.14 maven3.5.3-jdk7 maven 3.5.3、OpenJDK 1.7.0_75、zip 3.0、unzip 6.0
  • Android构建 构建环境 内置工具 基本环境 Android git、zip 3.0、unzip 6.0、curl 7.29.0、wget 1.14 可选环境 Gradle Gradle 2.13、 Gradle 2.14.1、Gradle 3.3、Gradle 4.1、Gradle 4.2、Gradle 4.3、Gradle 4.4、Gradle 4.5、Gradle 4.6、Gradle 4.7、Gradle 4.8、Gradle 4.9、Gradle 5.0、Gradle 5.1、Gradle 5.2、Gradle 5.3、Gradle 5.4、Gradle 5.5、Gradle 5.6、Gradle 6.0、Gradle 6.1、Gradle 6.2、Gradle 6.3、Gradle 6.4、Gradle 6.5、Gradle 6.6、Gradle 6.7、Gradle 6.8、Gradle 6.9、Gradle 7.0、Gradle 7.1、Gradle 7.2、Gradle 7.3、Gradle 8.0、Gradle 8.2.1 JDK OpenJDK 1.7、OpenJDK 1.8、OpenJDK 1.9、OpenJDK 10、OpenJDK 11、OpenJDK 12、OpenJDK 13、OpenJDK 14、OpenJDK 15、OpenJDK 16、OpenJDK 17 NDK NDK 16、NDK 17、NDK 18、NDK 19、NDK 20、NDK 21、NDK 22、NDK 23、NDK 25
  • 编译构建支持的Docker命令 docker login:登录docker仓库。 用法:docker login [options] [server] options填写方法如下表,server为docker仓库地址。 参数 对应短名称 说明 --password -p 登录仓库的用户密码。 --username -u 登录仓库的用户名。 --password -stdin 从标准输入获取用户密码。 示例:docker login -u jack -p 12345 mydocker-registry.com 该示例表示使用jack用户远程登录地址为“mydocker-registry.com”的仓库,密码为“12345”。 高级用法 从文件里获取密码:cat ~/my_password.txt | docker login --username jack --password-stdin docker build:通过Dockerfile或者上下文制作镜像。上下文可以是构建执行所在的本地路径“Path”,也可以是远程URL,如Git库、tarball或文本文件等,还可以是“-”。 用法:docker build [options] Path | URL | - options填写方法如下表。Path/URL/-为上下文来源。 参数 对应短名称 说明 --file -f Dockerfile文件路径,默认为“./Dockerfile”。 --tag -t “镜像名:标签”格式。 示例:docker build -t mydocker-registry.com/org/alpine:1.0 -f ./Dockerfile . 该示例表示使用当前目录且标签为“mydocker-registry.com/org/alpine:1.0”的Dockerfile制作镜像。 docker push:推送镜像到指定的地址。 用法:docker push [options] name[:tag] 示例:docker push mydocker-registry.com/org/alpine:1.0 该示例表示将“mydocker-registry.com/org/alpine”镜像的1.0版本推送到远程仓库。 docker pull:从镜像仓库下载镜像到本地。 用法:docker pull [options] name[:tag|@digest] options填写方法如下表。 参数 对应短名称 说明 --all-tags -a 下载镜像仓库所有标识tag的镜像。 示例:docker pull mydocker-registry.com/org/alpine:1.0 该示例表示从远程仓库拉取版本号为1.0的mydocker-registry.com/org/alpine镜像。 docker tag:修改镜像的标签。 用法:docker tag source_image[:tag] target_image[:tag] 其中source_image[:tag]表示需要修改标签的镜像,target_image[:tag]表示目标镜像。 示例:docker tag mydocker-registry.com/org/alpine:1.0 mydocker-registry/neworg/alpine:2.0 该示例表示,将“mydocker-registry.com/org/alpine”镜像的标签从“1.0”改为“2.0”。 docker save:保存一个或者多个镜像到tar类型的文件,默认是标准输出流。 用法:docker save [options] image [image ...] options填写方法如下表。 参数 对应短名称 说明 --output -o 写文件,非使用标准输出。 示例:docker save -o alpine.tar mydocker-registry.com/org/alpine:1.0 mydocker-registry.com/org/alpine:2.0 该示例表示将mydocker-registry.com/org/alpine:1.0镜像和mydocker-registry.com/org/alpine:2.0镜像打包到alpine.tar。 docker logout:从镜像仓库登出。 用法:docker logout [server] 示例:docker logout mydocker-registry.com 该示例表示登出地址为mydocker-registry.com的镜像仓。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 version: 2.0 # 必须是2.0 steps: BUILD: - docker: inputs: command: | docker pull swr.xx-xxxxx-x.myxxcloud.com/codeci/dockerindocker:dockerindocker18.09-1.3.2 表2 代码示例参数说明 参数 类型 说明 command string 执行命令,每个命令一行。支持的docker命令可参考编译构建支持的Docker命令。
  • 图形化构建 在配置构建步骤中,添加“执行Docker命令”构建步骤,参考表1配置参数。 表1 执行Docker命令参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 单击“添加”,新增一条命令行,请根据需要选择并配置命令。CodeArts Build支持的Docker命令可参考编译构建支持的Docker命令。 可通过拖动命令调整命令执行顺序。
  • 系统视图 表6 系统视图 变更类型 序号 名称 变更描述 新增 1 pgxc_session_wlmstat 新增视图。 2 pg_comm_query_speed 新增视图,根据query_id查询发送信息。 3 pgxc_respool_resource_info pgxc_respool_runtime_info pgxc_respool_resource_history gs_respool_resource_info gs_respool_runtime_info 资源监控新增相关视图。 4 pgxc_wait_detail pgxc_lockwait_detail 新增pg_locks增强视图。 修改 5 DBA_PART_INDEXES DBA_PART_TABLES DBA_TAB_PARTITIONS USER_IND_PARTITIONS USER_PART_INDEXES USER_TAB_PARTITIONS 增加相关list分区描述。 6 pgxc_wlm_session_statistics 视图从所有CN查询TopSQL实时信息的逻辑由串行修改为并行,提升性能,功能不变。 7 all_indexes sys和pg_catalog下面的视图all_indexes定义存在问题,不同scheam下存在同名对象的场景下会导致结果集膨胀。
  • 行为变更 表7 行为变更 变更类型 序号 名称 变更描述 修改 1 create index目标表为时序表时 时序表创建的任何索引都会转换为tag表上的双索引,该双索引的索引列为指定的建索引的列。 2 负载管理新增二次管控 负载管理引入二次管控,提供更精细化的管控,FUNCTION、函数和多语句中包含复杂查询的可能触发多次管控,设置enable_transaction_parctl=off可以关闭二次管控,但同时会关闭事务块语句和多语句管控。 3 负载管理autoanalyze纳管 查询触发autoanalyze管控逻辑由不管控修改为管控,设置enable_transaction_parctl=off可以关闭autoanalyze管控。 4 用户监控视图pg_total_user_resource_info CPU/内存资源使用和限制全部修改为用户在集群内的资源使用和资源限制。 CPU、IO、内存监控规格变更:由只监控复杂作业修改为监控所有作业。 CPU监控逻辑变更:由cgroup监控修改为作业CPU监控汇总。 5 审计日志 事务内语句在未设置审计事务但设置审计对应语句类型时,仍进行审计。 DECLARE CURSOR语句在guc参数audit_operation_exec设置select时也进行审计。
  • GUC参数 表8 GUC参数 变更类型 序号 名称 变更描述 新增 1 space_readjust_schedule 用户、schema空间是否自动校准的参数,默认值:auto,支持范围:off/auto/auto(xxxK/M/G)。 2 space_once_adjust_num 空间管控和空间统计功能中,控制慢速构建与细粒度校准操作中每次处理的文件个数阈值,默认值:300。 3 tag_cache_max_number 该参数用于设置全局哈希表tag cache缓存item的最大阈值,默认值10000000。 4 enable_tagbucket_auto_adapt 该参数用于设置是否开启tagbucket自适应调整,默认值on。 5 cache_tag_value_num 该参数用于在tag列lateread场景时,设置缓存的tag元组数量,默认值60000。 6 buffer_ring_ratio 用于控制行存Ringbuffer的阈值和开关,默认值250,即1/4(250/1000),与以前逻辑一致。 7 enable_stream_ctescan 新增参数,升级默认关闭,新装默认打开。控制stream计划是否开启share scan功能。 8 behavior_compat_options 新增disable_including_all_mysql选项用于控制MySQL兼容模式下create table like语法是否为including all模式,默认不设置,create table like语法为including_all模式。 9 profile_logging_module 增加GUC参数profile_logging_module配置记录性能日志的类型,升级和新装均默认打开OBS、HADOOP、REMOTE_DATANODE,关闭MD。该参数方法与日志模块开关logging_module相同。 10 object_mtime_record_mode 控制pg_object记录修改时间的行为,默认保持老版本行为,新增选项可控制不记录分区/truncate/grant/revoke。 11 skew_option 控制是否使用优化策略。 12 ddl_lock_timeout 配置ddl锁超时的时间。 修改 13 rewrite_rule 新增选项orconversion,默认打开。 使用等值关联的OR条件优化规则。变更点:计划从nestloop转到hashjoin。 新增选项projection_pushdown,默认打开。 变更点:子查询/CTE/视图中未使用的列被优化删除。 14 default_orientation 新增userset guc参数default_orientation,用于控制用户默认建表(不设置orientation)的类型,参数有三种类型可以设置: 行存表(row),列存表(column),开启delta表的列存表(column enabledelta)。 15 max_process_memory 初始化安装时OM设置max_process_memory公式为:可用内存*0.7/(1+DN数),其中系数0.7改为0.8。老集群升级、扩容等场景不变。 16 enable_bloom_filter 复用原参数,现用于控制列存BloomFilter,默认值不变(打开)。 17 retry_ecode_list 默认值新增45003,主要是处理list分区表查询和add分区并发场景下,查询分区可能错位的问题。 18 auth_iteration_count 将默认值从50000减少到10000,新装、升级均会修改。参数表示客户端和服务端密码哈希迭代次数。
  • 系统函数 表5 系统函数 变更类型 序号 名称 变更描述 新增 1 rb_build 将int数组转成一个bitmap类型。 2 rb_to_array rb_build的逆向操作,把RoaringBitmap转成int数组。 3 rb_and 两个RoaringBitmap做交集操作。 4 rb_or 两个RoaringBitmap做并集操作。 5 rb_xor 两个RoaringBitmap做异或操作。 6 rb_andnot 两个RoaringBitmap做and后取反。 7 rb_cardinality 计算一个RoaringBitmap的基数。 8 rb_and_cardinality 计算两个RoaringBitmap求and以后的基数。 9 rb_or_cardinality 计算两个RoaringBitmap求or以后的基数。 10 rb_xor_cardinality 计算两个RoaringBitmap求xor以后的基数。 11 rb_andnot_cardinality 计算两个RoaringBitmap求andnot以后的基数。 12 rb_is_empty 判断一个RoaringBitmap是否为空。 13 rb_equals 判断两个RoaringBitmap是否相等。 14 rb_intersect 判断两个RoaringBitmap是否相交。 15 rb_contain 判断第一个RoaringBitmap是否包含指定的值。 16 rb_add RoaringBitmap中增加一个值。 17 rb_remove RoaringBitmap中删除一个值。 18 rb_flip 翻转指定范围的RoaringBitmap。 19 rb_min 求一个RoaringBitmap的最小值。 20 rb_max 求一个RoaringBitmap的最大值。 21 rb_rank 返回Bitmap中小于等于指定Offset的基数。 22 rb_contain_rb 判断第一个RoaringBitmap是否包含第二个roaringbitmap。 23 rb_containedby_rb 判断第二个RoaringBitmap是否包含第一个roaringbitmap。 24 rb_containedby 判断指定的值是否被指定的roaringbitmap包含。 25 rb_iterate 返回RoaringBitmap对应的int 。 26 rb_and_agg 将RoaringBitmap列按照and逻辑做聚合。 27 rb_or_agg 将RoaringBitmap列按照or逻辑做聚合。 28 rb_xor_agg 将RoaringBitmap列按照xor逻辑做聚合。 29 rb_and_cardinality_agg 将RoaringBitmap列按照and逻辑做聚合后的基数。 30 rb_or_cardinality_agg 将RoaringBitmap列按照or逻辑做聚合后的基数。 31 rb_xor_cardinality_agg 将RoaringBitmap列按照xor逻辑做聚合后的基数。 32 rb_build_agg 将int列聚合成RoaringBitmap类型数据。 33 pgxc_wlm_readjust_relfilenode_size_table() 空间统计校准函数,不重建PG_RELFILENODE_SIZE系统表,重新校准用户和schema空间。 34 gs_table_distribution() 快速查询系统中表大小的函数。 35 pg_obs_cold_refresh_time 修改obs多温表自动切换任务时间。 36 gs_clean_tag_relation 清理tag表中无用的tagid行数据。该函数入参为时序表OID,每个分区遍历cudesc表tagid列的最小值,从而得到整个时序表tagid的最小值。 37 proc_drop_partition 用于将分区boundary时间超过TTL的分区进行drop。 38 proc_add_partition 用于为分区表创建分区。 39 pg_collation_actual_version 返回ICU排序规则的实际版本号。 40 first 分组内第一个元素。 41 last 分组内最后一个元素。 42 mode 分组内出现频率最高的值。 43 delta 相邻两行的差值。 44 percentile_of_value 近似百分位的值。 45 value_of_percentile 近似百分位。 46 spread 分组内最大值和最小值的差值。 47 pg_flush_buffers 刷出所有行存脏页。 修改 48 pg_stat_activity系列视图 pg_stat_get_activity_with_conninfo、pg_stat_activity、pgxc_stat_activity、pg_stat_get_activity视图新增stmt_type和lwtid列。 49 pg_authid系统表新增两行 新增pg_role_signal_backend,pg_role_read_all_stats预置角色。 50 vac_fileclear_relation 可以返回指定表真实清理文件的数量,不清理返回0。 51 vac_fileclear_all_relation 可以返回所有列存表真实清理文件的数量,不清理则返回0。
  • 系统表 表4 系统表 变更类型 序号 名称 变更描述 新增 1 rb_added RoaringBitmap中增加一个值。 2 pg_partition pg_partition新增字段boundexprs。 3 pg_relfilenode_size 新增系统表。 4 pg_attribute pg_attribute新增attkvtype列,记录列的kvtype类型。 5 pg_collation 新增一条记录case_insensitive,用于支持大小写不敏感行为。
  • 关键字 表3 关键字 变更类型 序号 名称 变更描述 新增 1 MATERIALIZED with cte as后新增[NOT] MATERIALIZED语法。作为非保留关键字,不影响其作为其他对象名,作为列别名时需要加AS。 2 time_fill 用于时间填充表达式输出time_fill列,作为关键字,不能用作函数名和自定义数据类型名。 3 fill_first/fill_last/fill_avg 用于时间填充表达式,输出填充列,作为关键字,不能用作函数名和自定义数据类型名。 4 list 用于指定分区表类型,作为非保留关键字,不影响其作为其他对象名,作为列别名时需要加AS。 5 tsfield/tstag/tstime 用于指定时序表kvtype类型,作为非保留关键字,不影响其作为其他对象名,作为列别名时需要加AS。
  • 使用场景 场景挑战 设备采集的数据信息量庞大但只需部分有效数据。部署在节点下的设备需要在本地判断情况以及时进行控制。 设备使用的协议不能接入边缘计算。 节点下的IT子系统众多,接入时不便于管理,配置繁琐。子系统采集的数据需要传输到用户的北向应用。 解决方案 通过开发集成ModuleSDK的应用,您可以: 使用ModuleSDK提供的AppClient开发OT应用对需要上传到云端的信息进行过滤上传。OT应用可以在本地对设备进行命令的下发。 使用ModuleSDK提供的DriverClient开发驱动应用进行协议转换。 使用ModuleSDK提供的ItClient开发IT应用实现子系统与云端配置的自动同步,也可以实现云端对子系统的配置管理。云端可以通过IT应用实现对子系统数据的采集。
  • 简介 为解决用户自定义处理设备数据以及自定义协议设备快速接入IOT平台的诉求,IoT边缘提供ModuleSDK,用户可通过集成SDK让设备以及设备数据快速上云。IoT边缘平台应用功能有自定义处理设备数据(即数据处理),自定义协议设备快速接入(即协议解析),IT子系统接入(即IT应用),并且支持容器化部署和安装包部署的方式。 集成ModuleSDK开发的应用被称为插件应用,其最终将被通过云部署到边缘节点。 集成ModuleSDK的应用分为: OT应用:数据处理类型的应用,实现了总线回调接口,IoT边缘云服务为OT应用提供总线对接能力、设备反向控制(命令)能力。 驱动应用:协议转换类型的应用,可将使用自定义协议的设备接入边缘计算。 IT应用:实现工业子系统接入的应用,实现了对子系统配置同步、反向调用接口、以及数据采集能力。 集成了SDK的应用称为插件,华为云市场提供了插件上架功能。您可以将你开发的集成了SDK的应用上传到华为云市场来获取收益,也可以在华为云市场下载使用第三方插件。
  • 镜像包打包 上传打包的项目。 将jar文件上传到联网的linux机器上,如目录(/home/monitor)中 安装docker。 请确认你使用的系统已经安装docker(docker版本需要高于17.06,推荐18.06),安装参照docker 安装教程 制作镜像。 搜索基础镜像,基础镜像需要集成jre。 docker search jre8 选择合适的镜像(镜像需要集成了jre且版本不低于8) NAME DESCRIPTION STARS OFFICIAL AUTOMATED livingobjects/jre8 Jre8 image 4 [OK] livingobjects/jre8镜像是docker hub第三方提供的镜像,非IoT团队发布,且IoT团队未提供任何官方镜像。该镜像在此仅做示例,IoT团队对该镜像的安全性不作保证。强烈建议用户自己封装镜像! 拉取镜像 docker pull livingobjects/jre8 编写dockerfile制作镜像 dockerfile内容参照如下(具体可参考编写高效的Dockerfile ) #Version 1.0.0 FROM livingobjects/jre8 #基础镜像来源 RUN mkdir -p /opt/iot/edge/monitor / && chmod -R 777 /opt/ #授权 COPY monitor /opt/iot/edge/monitor #复制文件到指定目录,此dockerfile文件位置:/home,jar包位置:/home/monitor USER root #用户名 EXPOSE 8080 CMD ["java", "-jar", "/opt/iot/edge/monitor/monitor-app.jar", "run"] #运行命令 构建镜像 docker build -t edge_monitor:1.0.0 /home --no-cache 查看打包完成的镜像 docker images REPOSITORY TAG IMAGE ID CREATED SIZE edge_monitor 1.0.0 93f9d964bcea 12 seconds ago 243MB 镜像上传。 上传镜像 开通 容器镜像服务 SWR 镜像上传需要使用SWR镜像容器服务,开通及使用请参照容器 镜像服务 SWR_用户指南 获取SWR登录指令 请参照使用容器引擎客户端上传镜像第四节。 tag镜像 使用tag命令将镜像重命名以确定上传位置和组织,获取上传位置和组织前缀请参考pull/push命令 docker tag edge_monitor:1.0.0 swr.cn-north-4.myhuaweicloud.com/hw_swr/edge_monitor:1.0.0 上传镜像 docker push swr.cn-north-4.myhuaweicloud.com/hw_swr/edge_monitor:1.0.0 查看上传结果 上传镜像后请在SWR将镜像设置为公开。
  • 镜像包打包 构建需要打包的项目 构建项目,此处示例,构建好的文件存放在目录 /home/ModuleSDK-Demo 下 安装docker 请确认您使用的系统已经安装Docker(Docker版本需要高于17.06,推荐18.06),安装方法可参照docker 安装教程。 制作镜像 搜索基础镜像。 docker search dotnet 根据您的工程配置,选择合适的镜像。 镜像需要集成与您的工程配置兼容的.Net运行环境,下文使用的.Net版本仅作演示。 拉取镜像。 docker pull mcr.microsoft.com/dotnet/runtime:2.1 mcr.microsoft.com/dotnet/runtime:2.1 镜像是微软提供的镜像,非IoT团队发布,且IoT团队未提供任何官方镜像。该镜像在此仅做示例,IoT团队对该镜像的安全性不作保证,强烈建议用户自己封装镜像! 编写 Dockerfile 制作镜像。 创建 Dockerfile,内容示例如下(具体可参考编写高效的Dockerfile )。 下面提供了ModuleSDK-Demo镜像构建样例,仅作示例展示,请按需修改。 # 基础镜像来源 FROM mcr.microsoft.com/dotnet/runtime:2.1 # 指定工作目录 WORKDIR /app # 复制工程二进制文件和相关文件(即项目构建发布的产物) COPY ModuleSDK-Demo/ /app ENTRYPOINT ["dotnet", "ModuleSDK-Demo.dll"] 构建镜像 docker build -t modulesdk-demo:1.0.0 -f Dockerfile . 查看打包完成的镜像 docker images 可以看到modulesdk-demo这个镜像已经制作完成。 REPOSITORY TAG IMAGE ID CREATED SIZE modulesdk-demo 1.0.0 85ed3c3dc738 8 minutes ago 182MB 上述步骤演示的是直接复制已编译好的工程文件来构建镜像,您也可以采取在构建镜像时编译的方式,具体可参照.Net 官方文档的指引。 镜像上传 上传镜像 镜像上传需要使用镜像容器服务(SWR),首先需要开通容器镜像服务(SWR)。开通及使用请参照容器镜像服务(SWR)。 获取 SWR 登录指令 获取登录指令请参照获取指令。 访问密钥即AK/SK(Access Key ID/Secret Access Key),获取的AK/SK将用于登录。 登录 SWR 仓库 docker login -u [区域项目名]@[AK] -p [登录密钥] [镜像仓库地址] 可以直接从控制台获取登录命令,如下图。 镜像仓库地址 = swr.区域项目名称.myhuaweicloud.com 例如,华北-北京一对应的镜像仓库地址为:swr.cn-north-1.myhuaweicloud.com 修改镜像所属组织 修改镜像的组织名,以便推送到个人组织内。 docker tag [OPTIONS] [镜像名:版本号] [镜像仓库地址/所属组织/镜像名:版本号] 例如: docker tag modulesdk-demo:1.0.0 swr.cn-north-4.myhuaweicloud.com/iotedge/modulesdk-demo:1.0.0 上传镜像 docker push [镜像仓库地址/所属组织/镜像名:版本号] 例如: docker push swr.cn-north-4.myhuaweicloud.com/iotedge/modulesdk-demo:1.0.0 在我的镜像查看上传结果 上传镜像后请在 SWR 将镜像设置为公开。 查看镜像详情: 编辑镜像: 设置为公开: 这一步很重要,关系到后面能否正常部署应用。
  • 镜像包打包 上传需要打包的项目。将项目上传到网络能访问到的Linux机器上,放到目录下(比如 /home/MyCApp)。 安装docker。 请确认你使用的系统已经安装docker(docker版本需要高于17.06,推荐18.06),安装方法可参照docker 安装教程。 制作镜像。 搜索基础镜像。 对基础镜像没有要求,可自行选择合适的基础镜像,以下选用带cmake的镜像作为示例 docker search cmake 选择合适的镜像(镜像需要集成了cmake且版本不低于3.9.5) NAME DESCRIPTION STARS OFFICIAL AUTOMATED lycantropos/cmake CMake Docker image 3 [OK] 拉取镜像 lycantropos/cmake镜像是docker hub第三方提供的镜像,非IoT团队发布,且IoT团队未提供任何官方镜像。该镜像在此仅做示例,IoT团队对该镜像的安全性不作保证。强烈建议用户自己封装镜像! docker pull lycantropos/cmake 添加启动脚本start.sh,放到项目文件下(和main.c在一个目录下)。 function log(){ echo `date "+%Y-%m-%d %T"`: $1 } log "[INFO] start execute process." # 这里的路径取决于项目保存的位置 cd /opt/iot/edge/MyCApp ./MyCApp MyCApp为可执行文件,生成步骤可参考生成可执行文件 编写 Dockerfile 制作镜像 创建 Dockerfile,命名为 myapp-dockerfile 内容参照如下(具体可参考编写高效的Dockerfile )。 下面提供myapp-dockerfile 样例,请根据具体需要修改。 注意myapp-dockerfile需要和项目放到一个目录下。 #Version 1.0.0 # 基础镜像来源 # 如果不采用在镜像中编译源文件的方式,可以任意选择基础镜像 FROM lycantropos/cmake # 创建镜像文件目录,并且授权 RUN mkdir -p /opt/iot/edge/MyCApp/conf && chmod -R 777 /opt ENV docker_path=/opt/iot/edge/MyCApp ENV LD_LIBRARY_PATH=${docker_path}:$LD_LIBRARY_PATH WORKDIR ${docker_path} # 复制工程或文件到指定目录 COPY MyCApp/MyCApp $docker_path # 将依赖库和配置文件放到对应目录下,确保编译的时候不会出错 COPY MyCApp/lib /usr/lib COPY MyCApp/conf $docker_path/conf COPY MyCApp/start.sh $docker_path # 指定容器将要监听的端口 USER root EXPOSE 8082 ENTRYPOINT ["/bin/bash", "/opt/iot/edge/MyCApp/start.sh"] 构建镜像 docker build -f ./myapp-dockerfile -t my_app_docker:v1.0.0 ./ 查看打包完成的镜像 docker images 可以看到my_app_docker这个镜像已经制作完成。 REPOSITORY TAG IMAGE ID CREATED SIZE my_app_docker v1.0.0 983b4e5aa72a 10 minutes ago 1.51GB 镜像上传 以上步骤可以通过体验馆熟悉流程。 上传镜像 镜像上传需要使用镜像容器服务(SWR),首先需要开通容器镜像服务(SWR)。开通及使用请参照容器镜像服务(SWR)。 获取 SWR 登录指令 获取登录指令请参照获取指令。 访问密钥即AK/SK(Access Key ID/Secret Access Key),获取的密钥和AK将用于登录。 登录 SWR 仓库 docker login -u [区域项目名]@[AK] -p [登录密钥] [镜像仓库地址] 可以直接从控制台获取登录命令,如下图。 镜像仓库地址 = swr.区域项目名称.myhuaweicloud.com 例如,华北-北京一对应的镜像仓库地址为:swr.cn-north-1.myhuaweicloud.com 修改镜像所属组织 修改镜像的组织名,以便推送到个人组织内。 docker tag [OPTIONS] [镜像名:版本号] [镜像仓库地址/所属组织/镜像名:版本号] 例如, docker tag my_app_docker:v1.0.0 swr.cn-north-4.myhuaweicloud.com/iotedge/my_app_docker:v1.0.0 上传镜像 docker push [镜像仓库地址/所属组织/镜像名:版本号] 例如, docker push swr.cn-north-4.myhuaweicloud.com/iotedge/my_app_docker:v1.0.0 在我的镜像查看上传结果 上传镜像后请在 SWR 将镜像设置为公开。 步骤一: 步骤二: 步骤三: 这一步很重要,关系到后面能否正常部署应用。
  • 安装专业版节点 在“节点管理”的节点列表选择您需要安装的节点,单击右侧“安装”,获得提示。 图5 安装 选择支持架构和安装目录,然后单击复制安装命令,使用SSH工具以root用户登录边缘节点服务器后台系统,执行安装命令。 图6 提示 安装命令的选择需要与购买的ecs的架构保持一致。 图7 执行安装 图8 安装命令执行成功 单击“我知道了”,等待边缘节点的状态变为“在线”,表示该节点已安装并连接成功。 您可以单击“节点名称”,查看该节点详细信息,关于节点详情描述可参见节点概览。
  • 安装专业版节点 在“节点管理”的节点列表选择您需要安装的节点,单击右侧“安装”,获得提示。 图5 安装 选择支持架构和安装目录,然后单击复制安装命令,使用SSH工具以root用户登录边缘节点服务器后台系统,执行安装命令。 图6 提示 安装命令的选择需要与购买的ecs的架构保持一致。 图7 执行安装 图8 安装命令执行成功 单击“我知道了”,等待边缘节点的状态变为“在线”,表示该节点已安装并连接成功。 您可以单击“节点名称”,查看该节点详细信息,关于节点详情描述可参见节点概览。
  • 安装专业版节点 在“边缘节点”的节点列表选择您需要安装的节点,单击右侧“安装”,获得提示。 图5 安装 选择边缘节点设备类型,并设备安装目录,然后单击复制安装命令,使用SSH工具以root用户登录边缘节点服务器后台系统,执行安装命令。 图6 提示 安装命令的选择需要与购买的ecs的架构保持一致。 图7 执行安装 图8 安装命令执行成功 单击“我知道了”,等待边缘节点的状态变为“在线”,表示该节点已安装并连接成功。 您可以单击“节点名称”,查看该节点详细信息,关于节点详情描述可参见基本信息。 创建节点后会在该账号对应的资源空间下创建edge_onvif产品模型,务必不要修改以及删除。其中,创建的产品模型信息如下:
  • 安装专业版节点 在“节点管理”的节点列表选择您需要安装的节点,单击右侧“安装”,获得提示。 图5 安装 选择支持架构和安装目录,然后单击复制安装命令,使用SSH工具以root用户登录边缘节点服务器后台系统,执行安装命令。 图6 提示 安装命令的选择需要与购买的ecs的架构保持一致。 图7 执行安装 图8 安装命令执行成功 单击“我知道了”,等待边缘节点的状态变为“在线”,表示该节点已安装并连接成功。 您可以单击“节点名称”,查看该节点详细信息,关于节点详情描述可参见节点概览。
共100000条