From fecc041ea93927bc37a56282715c89c09987ba27 Mon Sep 17 00:00:00 2001 From: GuangJie1 Date: Wed, 9 Jul 2025 16:20:33 +0800 Subject: [PATCH] add drill readme add storage readme --- Others/glassfish/README.md | 55 ++++++++++++++++ Others/glassfish/doc/image-info.yml | 50 +++++++++++++++ Others/glassfish/doc/picture/logo.png | Bin 0 -> 19788 bytes Storage/lizardfs/README.md | 85 +++++++++++++++++++++++++ Storage/lizardfs/doc/image-info.yml | 85 +++++++++++++++++++++++++ Storage/lizardfs/doc/picture/logo.png | Bin 0 -> 14496 bytes Storage/moosefs/README.md | 85 +++++++++++++++++++++++++ Storage/moosefs/doc/image-info.yml | 81 +++++++++++++++++++++++ Storage/moosefs/doc/picture/logo.png | Bin 0 -> 16896 bytes Storage/seaweedfs/README.md | 38 +++++++++++ Storage/seaweedfs/doc/image-info.yml | 34 ++++++++++ Storage/seaweedfs/doc/picture/logo.png | Bin 0 -> 79212 bytes 12 files changed, 513 insertions(+) create mode 100644 Others/glassfish/README.md create mode 100644 Others/glassfish/doc/image-info.yml create mode 100644 Others/glassfish/doc/picture/logo.png create mode 100644 Storage/lizardfs/README.md create mode 100644 Storage/lizardfs/doc/image-info.yml create mode 100644 Storage/lizardfs/doc/picture/logo.png create mode 100644 Storage/moosefs/README.md create mode 100644 Storage/moosefs/doc/image-info.yml create mode 100644 Storage/moosefs/doc/picture/logo.png create mode 100644 Storage/seaweedfs/README.md create mode 100644 Storage/seaweedfs/doc/image-info.yml create mode 100644 Storage/seaweedfs/doc/picture/logo.png diff --git a/Others/glassfish/README.md b/Others/glassfish/README.md new file mode 100644 index 00000000..c6dd3423 --- /dev/null +++ b/Others/glassfish/README.md @@ -0,0 +1,55 @@ +# Quick reference + +- The official GlassFish docker image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). + +# GlassFish | openEuler +Current GlassFish docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. + +Eclipse GlassFish is a Jakarta EE compatible implementation sponsored by the Eclipse Foundation. + +Learn more about GlassFish on [GlassFish Documentation](https://glassfish.org/documentation.html)⁠. + +# Supported tags and respective Dockerfile links +The tag of each `glassfish` docker image is consist of the version of `glassfish` and the version of basic image. The details are as follows + +| Tag | Currently | Architectures | +|--------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|---------------| +| [7.0.23-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Others/glassfish/7.0.23/24.03-lts-sp1/Dockerfile) | GlassFish 7.0.23 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +# Usage +In this usage, users can select the corresponding `{Tag}` based on their requirements. + +- Pull the `openeuler/glassfish` image from docker + + ```bash + docker pull openeuler/glassfish:{Tag} + ``` + +- Run with an interactive shell + + You can also start the container with an interactive shell to use glassfish. + ``` + docker run -it --rm openeuler/glassfish:{Tag} bash + ``` + +- Start the GlassFish Server + + To start the Eclipse GlassFish server, run the following command: + ``` + /glassfish/appserver/distributions/web/target/stage/glassfish7/bin/asadmin start-domai + ``` + Once the server is running, you can access the `Admin Console` at: ` http://localhost:4848`. + +- Stop the GlassFish Server + + To safely shut down the server, run: + ``` + /glassfish/appserver/distributions/web/target/stage/glassfish7/bin/asadmin stop-domain + ``` + +# Question and answering +If you have any questions or want to use some special features, please submit an issue or a pull request on [openeuler-docker-images](https://gitee.com/openeuler/openeuler-docker-images). \ No newline at end of file diff --git a/Others/glassfish/doc/image-info.yml b/Others/glassfish/doc/image-info.yml new file mode 100644 index 00000000..582802a3 --- /dev/null +++ b/Others/glassfish/doc/image-info.yml @@ -0,0 +1,50 @@ +name: glassfish +category: others +description: GlassFish 是由 Eclipse Foundation 维护的一款开源 Java EE(现 Jakarta EE)应用服务器,支持最新的企业级 Java 规范(如 Servlet、JPA、EJB、JAX-RS 等)。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + glassfish镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tag | Currently | Architectures | + |----------|-------------|------------------| + |[7.0.23-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Others/glassfish/7.0.23/24.03-lts-sp1/Dockerfile)| GlassFish 7.0.23 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/glassfish:{Tag} + ``` + +usage: | + - 交互式shell启动进入容器中 + + 通过交互式 Shell 启动容器,使用glassfish: + ``` + docker run -it --rm openeuler/glassfish:{Tag} bash + ``` + + - 启动 GlassFish 服务器 + + 要启动 Eclipse GlassFish 服务器,请运行以下命令: + ``` + /glassfish/appserver/distributions/web/target/stage/glassfish7/bin/asadmin start-domai + ``` + 服务器启动后,您可以通过以下地址访问 管理控制台: ` http://localhost:4848`. + + - 停止 GlassFish 服务器 + + 要安全关闭服务器,请运行: + ``` + /glassfish/appserver/distributions/web/target/stage/glassfish7/bin/asadmin stop-domain + ``` + +license: EPL-2.0 +similar_packages: + - WildFly: WildFly(原名 JBoss Application Server)是一个开源的、轻量级、高性能的Java EE/Jakarta EE应用服务器,并提供模块化架构,适用于云原生和微服务环境。 +dependency: + - openjdk + - maven \ No newline at end of file diff --git a/Others/glassfish/doc/picture/logo.png b/Others/glassfish/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9af188717eff32edcfc9578dbce0a7af142cf971 GIT binary patch literal 19788 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 literal 0 HcmV?d00001 diff --git a/Storage/lizardfs/README.md b/Storage/lizardfs/README.md new file mode 100644 index 00000000..76c73c84 --- /dev/null +++ b/Storage/lizardfs/README.md @@ -0,0 +1,85 @@ +# Quick reference + +- The official LizardFS docker image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). + +# LizardFS | openEuler +Current LizardFS docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. + +LizardFS is a fork of MooseFS and shares a similar design and core components. It continues MooseFS’s overall architecture, where the mfsmaster (Master Server) plays a central role. The mfsmaster manages metadata, file namespace, and coordinates chunkservers, making it the key component for the distributed file system to function properly. + +Learn more on [LizardFS Website](https://lizardfs.com/). + +# Supported tags and respective Dockerfile links +The tag of each `lizardfs` docker image is consist of the version of `lizardfs` and the version of basic image. The details are as follows + +| Tag | Currently | Architectures | +|--------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------|---------------| +| [3.12.0-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Storage/lizardfs/3.12.0/24.03-lts-sp1/Dockerfile) | LizardFS 3.12.0 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +# Usage +In this usage, users can select the corresponding `{Tag}` based on their requirements. + +- Pull the `openeuler/lizardfs` image from docker + + ```bash + docker pull openeuler/lizardfs:{Tag} + ``` + +- Run with an interactive shell + + You can also start the container with an interactive shell to use lizardfs. + ``` + docker run -it --rm openeuler/lizardfs:{Tag} bash + ``` + +- Create mfsmaster.cfg + + Create mfs configuration directory: + ``` + mkdir -p /etc/mfs + ``` + + Create mfs configuration file `/etc/mfs/mfsmaster.cfg`: + ``` + DATA_PATH = /var/lib/mfs + EXPORTS_FILENAME = /etc/mfs/mfsexports.cfg + + WORKING_USER = root + WORKING_GROUP = root + ``` + +- Create mfsexports.cfg + + `/etc/mfs/mfsexports.cfg`: + ``` + * / rw,alldirs,maproot=0 + ``` + +- Create empty optional files + + For single-node tests, these can be empty. There're used for rack/host mapping and advanced topology placement. + * `/etc/mfs/mfstopology.cfg` + * `/etc/mfs/mfsipmap.cfg` + +- Initialize metadata + + Inside you data path (`/var/lib/mfs`): + ``` + mkdir -p /var/lib/mfs + cd /var/lib/mfs + echo -e "MFSM NEWMETADATA 1\nEMPTY METADATA FILE" > metadata.mfs.empty + ``` + This creates an empty metadata file, needed for first-time startup. + +- Start the LizardFS Master + + ``` + mfsmaster start + ``` + +# Question and answering +If you have any questions or want to use some special features, please submit an issue or a pull request on [openeuler-docker-images](https://gitee.com/openeuler/openeuler-docker-images). \ No newline at end of file diff --git a/Storage/lizardfs/doc/image-info.yml b/Storage/lizardfs/doc/image-info.yml new file mode 100644 index 00000000..4e1271dd --- /dev/null +++ b/Storage/lizardfs/doc/image-info.yml @@ -0,0 +1,85 @@ +name: lizardfs +category: storage +description: LizardFS 是一个开源的分布式文件系统,具有高可用性、可扩展性和容错能力。它是 MooseFS 的一个分支,继承了 MooseFS 的整体架构和功能,提供了符合 POSIX 标准的网络文件系统。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + lizardfs镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tag | Currently | Architectures | + |----------|-------------|------------------| + |[3.12.0-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Storage/lizardfs/3.12.0/24.03-lts-sp1/Dockerfile)| LizardFS 3.12.0 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/lizardfs:{Tag} + ``` + +usage: | + - 使用交互式 Shell 启动容器 + + 你可以用交互式 shell 启动容器来运行 lizardfs: + ``` + docker run -it --rm --privileged openeuler/lizardfs:{Tag} bash + ``` + + - 创建配置文件mfsmaster.cfg + + 创建目录: + ``` + mkdir -p /etc/mfs + ``` + + 创建文件`/etc/mfs/mfsmaster.cfg`: + ``` + DATA_PATH = /var/lib/mfs + EXPORTS_FILENAME = /etc/mfs/mfsexports.cfg + + WORKING_USER = root + WORKING_GROUP = root + ``` + + - 创建配置文件mfsexports.cfg + + `/etc/mfs/mfsexports.cfg`: + ``` + * / rw,alldirs,maproot=0 + ``` + + - 创建空的可选配置文件 + + 对于单节点测试,这两个文件可以为空(用于机架/主机拓扑映射,高可用时才需要): + * `/etc/mfs/mfstopology.cfg` + * `/etc/mfs/mfsipmap.cfg` + + - 初始化元数据文件 + + 进入数据目录(`/var/lib/mfs`): + ``` + mkdir -p /var/lib/mfs + cd /var/lib/mfs + echo -e "MFSM NEWMETADATA 1\nEMPTY METADATA FILE" > metadata.mfs.empty + ``` + 这一步会生成一个空的元数据文件,用于首次启动。 + + - 启动 LizardFS Master + + ``` + mfsmaster start + ``` + +license: GPL-3.0 license +similar_packages: + - GlusterFS:易于部署的分布式文件系统,适合海量小文件。 +dependency: + - zlib + - fuse + - asciidoc + - Judy + - libdb + - spdlog + - pam \ No newline at end of file diff --git a/Storage/lizardfs/doc/picture/logo.png b/Storage/lizardfs/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4f0946c538f78c6941361623de9425e6266874ec GIT binary patch literal 14496 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 literal 0 HcmV?d00001 diff --git a/Storage/moosefs/README.md b/Storage/moosefs/README.md new file mode 100644 index 00000000..6f3deee6 --- /dev/null +++ b/Storage/moosefs/README.md @@ -0,0 +1,85 @@ +# Quick reference + +- The official MooseFS docker image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). + +# MooseFS | openEuler +Current MooseFS docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. + +MooseFS is a Petabyte Open Source Network Distributed File System. It is easy to deploy and maintain, highly reliable, fault tolerant, highly performing, easily scalable and POSIX compliant. + +Learn more on [moosefs Documentation](https://moosefs.com/support/#documentation). + +# Supported tags and respective Dockerfile links +The tag of each `moosefs` docker image is consist of the version of `moosefs` and the version of basic image. The details are as follows + +| Tag | Currently | Architectures | +|-------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|---------------| +| [4.57.5-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Storage/moosefs/4.57.5/24.03-lts-sp1/Dockerfile) | MooseFS 4.57.5 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +# Usage +In this usage, users can select the corresponding `{Tag}` based on their requirements. + +- Pull the `openeuler/moosefs` image from docker + + ```bash + docker pull openeuler/moosefs:{Tag} + ``` + +- Run with an interactive shell + + You can also start the container with an interactive shell to use moosefs. + ``` + docker run -it --rm openeuler/moosefs:{Tag} bash + ``` + +- Create mfsmaster.cfg + + Create mfs configuration directory: + ``` + mkdir -p /etc/mfs + ``` + + Create mfs configuration file `/etc/mfs/mfsmaster.cfg`: + ``` + DATA_PATH = /var/lib/mfs + EXPORTS_FILENAME = /etc/mfs/mfsexports.cfg + + WORKING_USER = root + WORKING_GROUP = root + ``` + +- Create mfsexports.cfg + + `/etc/mfs/mfsexports.cfg`: + ``` + * / rw,alldirs,maproot=0 + ``` + +- Create empty optional files + + For single-node tests, these can be empty. There're used for rack/host mapping and advanced topology placement. + * `/etc/mfs/mfstopology.cfg` + * `/etc/mfs/mfsipmap.cfg` + +- Initialize metadata + + Inside you data path (`/var/lib/mfs`): + ``` + mkdir -p /var/lib/mfs + cd /var/lib/mfs + echo -e "MFSM NEWMETADATA 1\nEMPTY METADATA FILE" > metadata.mfs.empty + ``` + This creates an empty metadata file, needed for first-time startup. + +- Start the MooseFS Master + + ``` + /moosefs/mfsmaster/mfsmaster start + ``` + +# Question and answering +If you have any questions or want to use some special features, please submit an issue or a pull request on [openeuler-docker-images](https://gitee.com/openeuler/openeuler-docker-images). \ No newline at end of file diff --git a/Storage/moosefs/doc/image-info.yml b/Storage/moosefs/doc/image-info.yml new file mode 100644 index 00000000..65824fce --- /dev/null +++ b/Storage/moosefs/doc/image-info.yml @@ -0,0 +1,81 @@ +name: moosefs +category: storage +description: MooseFS(Moose File System)是一款开源的分布式文件系统,最早由波兰公司 Tuxera(原 MooseFS 团队)开发。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + moosefs镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tag | Currently | Architectures | + |----------|-------------|------------------| + |[4.57.5-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Storage/moosefs/4.57.5/24.03-lts-sp1/Dockerfile)| MooseFS 4.57.5 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/moosefs:{Tag} + ``` + +usage: | + - 使用交互式 Shell 启动容器 + + 你可以用交互式 shell 启动容器来运行 moosefs: + ``` + docker run -it --rm --privileged openeuler/moosefs:{Tag} bash + ``` + + - 创建配置文件mfsmaster.cfg + + 创建目录: + ``` + mkdir -p /etc/mfs + ``` + + 创建文件`/etc/mfs/mfsmaster.cfg`: + ``` + DATA_PATH = /var/lib/mfs + EXPORTS_FILENAME = /etc/mfs/mfsexports.cfg + + WORKING_USER = root + WORKING_GROUP = root + ``` + + - 创建配置文件mfsexports.cfg + + `/etc/mfs/mfsexports.cfg`: + ``` + * / rw,alldirs,maproot=0 + ``` + + - 创建空的可选配置文件 + + 对于单节点测试,这两个文件可以为空(用于机架/主机拓扑映射,高可用时才需要): + * `/etc/mfs/mfstopology.cfg` + * `/etc/mfs/mfsipmap.cfg` + + - 初始化元数据文件 + + 进入数据目录(`/var/lib/mfs`): + ``` + mkdir -p /var/lib/mfs + cd /var/lib/mfs + echo -e "MFSM NEWMETADATA 1\nEMPTY METADATA FILE" > metadata.mfs.empty + ``` + 这一步会生成一个空的元数据文件,用于首次启动。 + + - 启动 MooseFS Master + + ``` + /moosefs/mfsmaster/mfsmaster start + ``` + +license: GPL-2.0 license +similar_packages: + - GlusterFS:易于部署的分布式文件系统,适合海量小文件。 +dependency: + - zlib + - glibc + - m4 \ No newline at end of file diff --git a/Storage/moosefs/doc/picture/logo.png b/Storage/moosefs/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7b5867bef2a807f396cc4ba3b991345b8e62d544 GIT binary patch literal 16896 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 VHRIz1zO4ZyD+QM<7dQI&{{ZmCMEU># literal 0 HcmV?d00001 diff --git a/Storage/seaweedfs/README.md b/Storage/seaweedfs/README.md new file mode 100644 index 00000000..4981a089 --- /dev/null +++ b/Storage/seaweedfs/README.md @@ -0,0 +1,38 @@ +# Quick reference + +- The official seaweedfs docker image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). + +# seaweedfs | openEuler +Current seaweedfs docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. + +SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. + +# Supported tags and respective Dockerfile links +The tag of each `seaweedfs` docker image is consist of the version of `seaweedfs` and the version of basic image. The details are as follows + +| Tag | Currently | Architectures | +|-----------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|---------------| +| [3.85-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Storage/seaweedfs/3.85/24.03-lts-sp1/Dockerfile) | seaweedfs 3.85 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +# Usage +In this usage, users can select the corresponding `{Tag}` based on their requirements. + +- Pull the `openeuler/seaweedfs` image from docker + + ```bash + docker pull openeuler/seaweedfs:{Tag} + ``` + +- Start a seaweedfs instance + + ``` + docker run -it --rm openeuler/seaweedfs:{Tag} + ``` + The `openeuler/seaweedfs` image is used to verify the integration between the upstream seaweedfs version and openEuler. + +# Question and answering +If you have any questions or want to use some special features, please submit an issue or a pull request on [openeuler-docker-images](https://gitee.com/openeuler/openeuler-docker-images). \ No newline at end of file diff --git a/Storage/seaweedfs/doc/image-info.yml b/Storage/seaweedfs/doc/image-info.yml new file mode 100644 index 00000000..ee7dc0b7 --- /dev/null +++ b/Storage/seaweedfs/doc/image-info.yml @@ -0,0 +1,34 @@ +name: seaweedfs +category: storage +description: SeaweedFS 是一款开源的轻量级分布式文件系统,最初由 Chris Lu 开发,专门针对海量小文件和对象存储场景优化。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + seaweedfs镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tag | Currently | Architectures | + |----------|-------------|------------------| + |[3.85-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Storage/seaweedfs/3.85/24.03-lts-sp1/Dockerfile)| seaweedfs 3.85 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/seaweedfs:{Tag} + ``` + +usage: | + - 启动seaweedfs实例 + + ``` + docker run -it --name seaweedfs openeuler/seaweedfs:{Tag} + ``` + `openeuler/seaweedfs`镜像用于验证上游seaweedfs版本和openEuler的集成。 + +license: Apache-2.0 license +similar_packages: + - GlusterFS:易于部署的分布式文件系统,适合海量小文件。 +dependency: + - golang \ No newline at end of file diff --git a/Storage/seaweedfs/doc/picture/logo.png b/Storage/seaweedfs/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a5a09fdf177fbf2f8949d98fdbd195a841a39df3 GIT binary patch literal 79212 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