生成镜像

最近更新时间:2018-05-10 18:00:00



如果区分架构:

星域云是通过镜像名称加后缀进行识别镜像基于什么指令集硬件构建,并且支持镜像组模式,目前支持以下种

_x86:表示使用x86 32位构建,如:hello_x86:v1.0.0 只能选取x86 32位系统的节点

_aarch64:表示使用armv8构建,如:hello_aarch64:v1.0.0只能选取armv8的架构的节点

_arm32:表示使用armv7构建,如:hello_arm32:v1.0.0 只能选取armv7的架构节点

_x86_64:表示使用x86 64位构建,如:hello_x86_64:v1.0.0 只能选取x86 64位系统的节点

无后缀:表示使用armv7构建的,如:hello:v1.0.0只能选取armv7的架构的节点

什么是镜像组:

镜像组表示同一个主镜像名称,同一版本,不同后缀的组合

镜像组可以用于同一任务支持不同架构(后缀决定)的节点可使用

构建docker

环境需求:

1、需要在系统中安装docker,步骤参考官方安装指引

2、请下载示例镜像,此镜像详情,请查看交叉编译文档

3、静态编译镜像

执行以下步骤:

  1. 创建galaxy目录,将hello程序文件放在galaxy目录下,并确保其具备可执行权限

  2. 将下列内容写入文件dockerfile并放在galaxy目录下。注意其中CMD一项指定执行的程序为hello,如果换用其他程序,需做相应修改

FROM scratch
ENV WORKER_DIR /usr/local/xycloud
COPY . $WORKER_DIR
CMD ["/usr/local/xycloud/hello"]
  1. 进入galaxy目录,执行docker build -f dockerfile -t hello:v1.0 ./即可完成构建

  2. 使用docker images命令可查看本地生成的hello镜像

展示生成的helloworld镜像

注意: 本示例基于空镜像scratch来构件hello镜像,不携带libc等常用依赖库。可执行程序在编译时可选择静态链接依赖库(-static)或自行在镜像中添加依赖库,否则程序运行会因缺少依赖库而失败。更多的docker镜像定制说明,请参考docker官方文档。