Skip to content

Latest commit

 

History

History
213 lines (170 loc) · 9.8 KB

README.md

File metadata and controls

213 lines (170 loc) · 9.8 KB

中文 | English

openEuler官方容器镜像仓

介绍

这里存放着由openEuler官方提供的容器镜像Dockerfile,包含openEuler基础镜像、应用镜像。

相关链接

基础镜像

openEuler的基础镜像由社区官方发布,目前发布在openEuler镜像站, 其中"openeuler:latest"是最新可用的长期稳定镜像。

社区官方镜像发布后,会同步推送到各个远端容器镜像仓,信息如下:

1.仓库及镜像名

基础镜像在第三方镜像托管平台的仓库名/镜像名为:openeuler/openeuler

2.可用镜像的Tags

3.存放路径:

Base/openeuler/Dockerfile

应用镜像

基于openEuler基础镜像内置应用,发布openEuler的应用镜像。

1.仓库及镜像名

应用镜像在第三方镜像托管平台的仓库名/镜像名为:openeuler/[应用名]

2.存放路径

应用镜像按场景分为7类,按场景目录存放镜像构建文件:

  • 大数据: Bigdata/
  • AI: AI/
  • 分布式存储: Storage/
  • 数据库: Database/
  • 云服务: Cloud/
  • 高性能计算: HPC/
  • 其他: Others/

2.1 整体目录

由于应用镜像功能的复杂性,存放文件的路径深度具有不确定性,整体存放路径如下:

openeuler-docker-images/
└── AI/
    |── image-list.yml
	|── OPEA/ # 解决方案层级
	|    |── AudioQnA/ # 案例1
	|	 |    └── Image_1/
	|	 |    └── Image_2/
	|	 └── DocSum/  # 案例2
	|	      └── Image_3/
	|	      └── Image_4/
	|		  └── Image_5/
	|───Image6/
	└───Image7/

每个场景目录下必须包含一个image-list.yml用以描述每个应用镜像最小目录单元(即,示例中的所有Image_i/)的起始路径,其格式如下:

# AI/image-list.yml示例
images:
	Image_1: AI/OPEA/AudioQnA/Image_1/  # root path to Image_1
	Image_2: AI/OPEA/AudioQnA/Image_2/
	Image_3: AI/OPEA/DocSum/Image_3/
	Image_4: AI/OPEA/DocSum/Image_4/
	Image_5: AI/OPEA/DocSum/Image_5/
	Image_6: Image_6/
	Image_7: Image_7/

image-list.yml的存在:

2.2 最小目录

本仓库要求最小目录单元Image_i/严格遵循以下结构:

# 以Image_i == nginx为例
nginx/
	|── README.md
	|── meta.yml
	|── doc/ (可选)
	|    |── picture/
	|	 |    └── logo.png
	|	 └── image-info.yml
	└── 1.27.2/
	     |── 24.03-lts
		 |    └── Dockerfile
		 |── 22.03-lts-sp4
		 |    └── Dockerfile
	     |── 22.03-lts-sp3
		 |    └── Dockerfile
	     └── 22.03-lts-sp1
		      └── Dockerfile

在每个最小目录单元Image_i/下,包含以下内容:

  • Dockerfile:

    存放路径为[应用的版本号]/[openEuler的版本号]/Dockerfile。示例:基于openEuler 22.03-lts-sp1的nginx 1.27.1应用镜像Dockerfile位于1.27.1/22.03-lts-sp1/Dockerfile

    特殊地,对于复杂软件栈的应用容器镜像,为了准确表达其依赖情况,Dockerfile存放路径的[应用版本号]可以描述为完整的软件栈版本号,例如PyTorch:2.1.0-cann7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile存放基于cann7.0.RC1.alpha002openEuler 22.03-lts-sp2pytorch 2.1.0版本应用镜像的Dockerfile(AI类容器镜像的tag可参考oEEP-0014)。

  • README.md文件

    按顺序涵盖以下信息:

    • Quick reference:相关链接信息
    • [应用名] | openEuler:描述应用的功能
    • Supported tags and respective Dockerfile links:描述当前应用容器镜像的tags及Dockerfile链接,新增镜像时必须更新
    • Usage:描述该应用容器镜像的使用方法,尽量出给一个能够简单运行的测试用例
    • Question and answering:提供Issue链接

    README会同步发布到第三方Hub镜像详情页面的OverviewDescription,贡献PR时需认真对待。

  • meta.yml文件

    描述每个镜像的tag信息和Dockerfile存放路径等信息,文件路径为:[应用名]/meta.yml。文件格式如下所示:

     # spark/meta.yml
     3.3.1-oe2203lts: 
     	path: spark/3.3.1/22.03-lts/Dockerfile
     3.3.2-oe2203lts:
     	path: spark/3.3.2/22.03-lts/Dockerfile
     	arch: aarch64
    

    上述文件中,每一对<key, value>描述一个镜像的构建发布规则,其中:

    • key:表示镜像的tag,建议tag命名格式为:[应用版本号]-[openeuler版本号],如3.3.1-oe2203lts3.3.2-oe2203lts均表示openeuler/spark镜像的不同tag
    • value: 用于描述如何构建镜像,说明如下
      配置项 是否必选 功能说明 示例
      path 描述构建镜像的Dockerfile相对路径 spark/3.3.1/22.03-lts/Dockerfile
      arch 用于发布单架构镜像时,指定构建架构可选x86_64aarch64;未填写该项时,默认发布x86_64aarch64的双架构镜像 x86_64

    备注: 镜像tag更新时,需要同步更新上述配置

  • (可选)doc/目录

    存放该镜像的图文信息,用于在openEuler软件中心应用镜像板块展示该镜像。无需展示在软件中心时,可不填写本部分内容。

    • doc/image-info.yml,内容如下:

        名称(name):应用名
        分类(category):应用镜像功能分类,可选:bigdata、ai、storage、database、cloud、hpc、others
        功能简介(description)
        运行环境(environment)
        镜像标签(tags)
        获取方式(download)
        使用方式(usage)
        LICENSE(license)
        近似软件(similar_packages)
        依赖软件(dependency)
      
    • doc/picture/

      存放与应用特征相关的图片,如应用的logo或典型场景的运行时截图

    备注:上述doc/目录的文件和内容必须同时存在才可在软件中心正确显示该镜像

镜像托管平台

目前支持的第三方镜像托管平台有:

以基础镜像openeuler/openeuler:latest为例,从指定托管平台获取镜像的方式如下:

# 从hub.oepkgs.net获取镜像
docker pull hub.oepkgs.net/openeuler/openeuler:latest

# 从hub.docker.com获取镜像
docker pull docker.io/openeuler/openeuler:latest

# 从quay.io获取镜像
docker pull quay.io/openeuler/openeuler:latest

注意:由于国内用户访问hub.docker.com受限,建议从hub.oepkgs.netquay.io拉取所需的镜像。

镜像发布指南

欢迎广发开发者贡献openEuler应用容器镜像,请根据上述要求提交PR,待门禁检查成功且合入后,会触发自动发布流程,您的镜像将会出现在上文中提到的镜像托管平台中!

关于门禁检查的说明:

  1. 所有容器镜像的构建、发布、测试均由EulerPublisher完成。

  2. 应用容器镜像的测试通过tests/container/app目录的测试脚本实现。开发者贡献应用镜像时,可通过EulerPublisher仓库的说明同时贡献对应的测试用例。

关于PR合入后,自动发布镜像的规则说明:

  1. 新增或修改镜像Dockerfile的PR合入后,会触发新增镜像自动发布或已有镜像更新。

  2. 新增或修改镜像README.md的PR合入后,会触发所有镜像托管平台的Overview或Description信息刷新。

  3. 已发布的镜像原则上不能下架,即使不再更新维护也存在用户仍在使用的情况。因此,特殊情况下需要下架镜像时,请创建issue提供需要下架的镜像tag以及下架原因,并与maintainer联系。