中文 | English
Dockerfiles for openEuler official container images, include openEuler basic image and application images.
The base images of openEuler are officially released by the community and are currently available at openEuler repo. The latest
tag represents the latest available long-term stable image.
Once the official images are released, they will be synchronized and pushed to various remote container image repositories, as detailed below:
The {repository/name} for the base image on third-party image hubs is openeuler/openeuler
- 20.03-lts
- 20.03-lts-sp1
- 20.03-lts-sp2
- 20.03-lts-sp3
- 20.03-lts-sp4, 20.03
- 20.09
- 21.03
- 21.09
- 22.03-lts
- 22.09
- 22.03-lts-sp1
- 22.03-lts-sp2
- 22.03-lts-sp3
- 22.03-lts-sp4, 22.03
- 23.03
- 23.09
- 24.03-lts
- 24.03-lts-sp1, latest
- 24.09
Base/openeuler/Dockerfile
Images for various popular application implementations based on openEuler base images.
The {repository/name} for the application images on third-party image hubs is openeuler/[application name]
Application images are categorized into seven types based on scenarios, and the image building files are stored in corresponding scenario directories:
- Bigdata:
Bigdata/
- AI:
AI/
- Distributed Storage:
Storage/
- Database:
Database/
- Cloud Service:
Cloud/
- High-Performance Computing:
HPC/
- Others:
Others/
Due to the complexity of application image functionalities, the depth of the directory is uncertain. The overall directory is as follows:
openeuler-docker-images/
└── AI/
|── image-list.yml
|── OPEA/
| |── AudioQnA/
| | └── Image_1/
| | └── Image_2/
| └── DocSum/
| └── Image_3/
| └── Image_4/
| └── Image_5/
|───Image6/
└───Image7/
Each scenario directory must contain an image-list.yml
to describe the roots for each application image's minimum directory unit (MDU) (i.e., all Image_i/
s in the example), image-list.yml
is formatted as follows:
# 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/
The existence of image-list.yml
:
- Helps check the integrity of the image directory.
- Facilitates the listing of application images in openEuler Software Center.
This repository requires the minimum directory unit Image_i/
to strictly follow the structure below:
# here, Image_i == nginx
nginx/
|── README.md
|── meta.yml
|── doc/ (optional)
| |── 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
In each MDU Image_i/
, the following contents must be included:
-
Dockerfile
The storage path is
[application version]/[openEuler version]/Dockerfile
. For example, the Dockerfile for the nginx application image version1.27.1
based on openEuler22.03-lts-sp1
is located at1.27.1/22.03-lts-sp1/Dockerfile
.Specifically, for complex software stack application container images, to accurately express their dependencies, the application version in the Dockerfile storage path can be described as the complete software stack version number. For example, in PyTorch root path:
2.1.0-cann7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile
stores the Dockerfile for the pytorch2.1.0
version application image based oncann7.0.RC1.alpha002
and openEuler22.03-lts-sp2
(AI container image tags can refer to oEEP-0014). -
README.md
The README should cover the following information in order:
- Quick reference: Relevant link information
- [Application Name] | openEuler: Description of the application's functionality
- Supported tags and respective Dockerfile links: Description of the current application container image tags and Dockerfile links; must be updated when new images are added
- Usage: Description of how to use the application container image, ideally including a simple runnable test case
- Question and answering: Provide Issue links
The README will be published to the Overview or Description section of the third-party Hub image detail page; contributions via PR should be taken seriously.
-
meta.yml
This file describes the tag information and Dockerfile storage paths for each image, located at:
[application name]/meta.yml
. The file format is as follows:# 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
In the above example, each pair of
<key, value>
contains image's publishing configuration, it's as follows:-
key: Represents the image tag, with a recommended naming format of:
[application version]-[openeuler version]
, such as3.3.1-oe2203lts
and3.3.2-oe2203lts
, indicating different tags of theopeneuler/spark
. -
value: Describes how to build the image, explained as follows:
Configuration description:
Configuration Item Required Description Example path yes Relative path of the image dockerfile spark/3.3.1/22.03-lts/Dockerfile arch optional Specifies the architecture when releasing a single-architecture image, optional x86_64
oraarch64
if not filled, a dual-architecture image for bothx86_64
andaarch64
will be released by defaultx86_64
*Note: When updating the image tag, the above configuration must also be updated.
-
-
(Optional)
doc/
This directory stores graphic and textual information about the image for display in openEuler Software Center's application image section. If it is not to be displayed in openEuler Software Center, this section can be omitted.
-
doc/image-info.yml
The content is as follows:
name category (options: bigdata, ai, storage, database, cloud, hpc, others) description environment tags download usage license similar_packages dependency
-
doc/picture/
Store application-related images, such as application logos or runtime screenshots of typical scenes.
*Note: The files and contents in the above
doc/
directory must exist simultaneously for the image to be displayed correctly in openEuler Software Center. -
Available container registries included:
For example, users can obtain the base image openeuler/openeuler:latest
by the following commands
# pull image from hub.oepkgs.net
docker pull hub.oepkgs.net/openeuler/openeuler:latest
# pull image from hub.docker.com
docker pull docker.io/openeuler/openeuler:latest
# pull from quay.io
docker pull quay.io/openeuler/openeuler:latest
Welcome to contribute openEuler application container images, please submit PR according to the above rules. Once the PR is passed and merged, the automatically publishing process will be triggered, and these images will be published to available container registries mentioned above!
Code check instruction:
- EulerPublisher is used to build, check and publish container images.
- All test cases of application container images are stored in /tests/container/app. Developers who want to publish container images can also submit test cases to EulerPublisher.
- When the PR in which you add or modify a Dockerfile is merged, a new image will be automatically published or the existing image will be updated.
- When the PR in which you add or modify a README.md is merged, the README.md will be synchronously published to the third-party Hubs.
- Published images generally cannot be removed, even if they are no longer updated or maintained, as users may still be using them. Therefore, in special cases where an image needs to be removed, please create an issue providing the tag of the image to be removed and the reason for removal, and contact the maintainer.