diff --git a/Storage/ceph/20.3.0/24.03-lts-sp2/Dockerfile b/Storage/ceph/20.3.0/24.03-lts-sp2/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..e5717cdd33858098e8572e6d10df76cda597f8ef --- /dev/null +++ b/Storage/ceph/20.3.0/24.03-lts-sp2/Dockerfile @@ -0,0 +1,54 @@ +ARG BASE=openeuler/openeuler:24.03-lts-sp2 +FROM $BASE as builder +ARG VERSION=20.3.0 + +RUN dnf update -y \ + && dnf install -y \ + git gcc-c++ ninja-build cmake python3-sphinx \ + libibverbs libibverbs-devel rdma-core rdma-core-devel \ + systemd-devel libblkid-devel keyutils-libs-devel \ + openldap-devel cryptsetup-devel python3-pip \ + autoconf automake libtool ocaml ocaml-devel \ + libatomic librdkafka librdkafka-devel \ + gnutls-devel libxml2-devel glib2-devel \ + libev-devel fuse3-devel bash-completion \ + ocaml-findlib python3-devel golang rust cargo \ + libaio libaio-devel sqlite sqlite-devel \ + snappy snappy-devel lz4 lz4-devel curl-devel \ + expat-devel liboath liboath-devel lttng-ust lttng-ust-devel \ + babeltrace libbabeltrace-devel libicu libicu-devel \ + thrift-devel libcap-devel lua-devel \ + libcap-ng libcap-ng-devel gperf lmdb lmdb-devel \ + librabbitmq librabbitmq-devel python3-pyyaml \ + numactl-devel make python nasm \ + && dnf clean all + +RUN python3 -m pip install --upgrade pip \ + && python3 -m pip install cython prettytable + +WORKDIR /opt + +RUN git clone https://gitlab.com/nbdkit/libnbd.git \ + && cd libnbd \ + && autoreconf -fi \ + && ./configure \ + && make -j$(nproc) \ + && make install \ + && cd .. \ + && rm -rf libnbd + +RUN git clone -b v${VERSION} --recursive --depth 1 https://github.com/ceph/ceph.git \ + && cd ceph \ + && ./do_cmake.sh -DCMAKE_BUILD_TYPE=Release -DWITH_TESTS=OFF \ + && cd build \ + && ninja -j$(nproc) \ + && ninja install + +ENV LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH + +COPY --chmod=755 entrypoint.sh /opt/ceph/entrypoint.sh + +WORKDIR /opt/ceph + +ENTRYPOINT [ "./entrypoint.sh" ] + diff --git a/Storage/ceph/20.3.0/24.03-lts-sp2/entrypoint.sh b/Storage/ceph/20.3.0/24.03-lts-sp2/entrypoint.sh new file mode 100644 index 0000000000000000000000000000000000000000..b5991653e035d38b5c781e173048cc27642302f4 --- /dev/null +++ b/Storage/ceph/20.3.0/24.03-lts-sp2/entrypoint.sh @@ -0,0 +1,72 @@ +#!/bin/bash +set -e + +CEPH_SRC_DIR=$(pwd) +BUILD_DIR="$CEPH_SRC_DIR/build" +CLUSTER_DIR="$CEPH_SRC_DIR/ceph-cluster" +ETC_DIR="$CLUSTER_DIR/etc" +LIB_DIR="$CLUSTER_DIR/lib" +LOG_DIR="$CLUSTER_DIR/log" + +MON_NAME="mon1" +MON_IP="127.0.0.1" +FSID=$(uuidgen) + +echo "[*] Using FSID: $FSID" +echo "[*] Working directory: $CEPH_SRC_DIR" + +echo "[*] Cleaning up previous state..." +pkill -9 ceph-mon || true +rm -rf "$CLUSTER_DIR" +rm -f /var/run/ceph/ceph-mon.$MON_NAME.asok + +mkdir -p "$ETC_DIR" "$LIB_DIR/mon/$MON_NAME" "$LOG_DIR" + +cat > "$ETC_DIR/ceph.conf" </dev/null; then + echo "[!] Error: ceph-mon process failed to start! Check logs: $LOG_DIR/ceph.log" + exit 1 +fi + +echo "[*] Cluster status:" +"$BUILD_DIR/bin/ceph" -s \ + --conf "$ETC_DIR/ceph.conf" \ + --keyring "$ETC_DIR/ceph.client.admin.keyring" + +echo "[+] Successfully started single-node Ceph cluster!" \ No newline at end of file diff --git a/Storage/ceph/README.md b/Storage/ceph/README.md index 0d16bb4523acb1e5b9b3152e81a2fdcad31dea77..54b4203173f9760b03966c645fa22a1c7f0a90fe 100644 --- a/Storage/ceph/README.md +++ b/Storage/ceph/README.md @@ -18,6 +18,7 @@ The tag of each `ceph` docker image is consist of the version of `ceph` and the | Tag | Currently | Architectures | |----------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|---------------| +|[20.3.0-oe2403sp2](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Storage/ceph/20.3.0/24.03-lts-sp2/Dockerfile) | ceph 20.3.0 on openEuler 24.03-LTS-SP2 | amd64, arm64 | | [20.3.0-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Storage/ceph/20.3.0/24.03-lts-sp1/Dockerfile) | Ceph 20.3.0 on openEuler 24.03-LTS-SP1 | amd64, arm64 | # Usage diff --git a/Storage/ceph/doc/image-info.yml b/Storage/ceph/doc/image-info.yml index d245e34b98afc72dd541cc40aa942053162b3447..0d9601f038925dac1dcc5cd31e0ce182bab0cea2 100644 --- a/Storage/ceph/doc/image-info.yml +++ b/Storage/ceph/doc/image-info.yml @@ -11,6 +11,7 @@ tags: | | Tag | Currently | Architectures | |----------|-------------|------------------| + |[20.3.0-oe2403sp2](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Storage/ceph/20.3.0/24.03-lts-sp2/Dockerfile) | ceph 20.3.0 on openEuler 24.03-LTS-SP2 | amd64, arm64 | |[20.3.0-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Storage/ceph/20.3.0/24.03-lts-sp1/Dockerfile)| Ceph 20.3.0 on openEuler 24.03-LTS-SP1 | amd64, arm64 | download: | @@ -37,4 +38,4 @@ dependency: - librados - openssl - libcurl - - systemd + - systemd \ No newline at end of file diff --git a/Storage/ceph/meta.yml b/Storage/ceph/meta.yml index 29bc36920cb32b7979418161a09d8097a3267254..c733eff960b24625375f268d63e34bd677fffe0a 100644 --- a/Storage/ceph/meta.yml +++ b/Storage/ceph/meta.yml @@ -1,2 +1,5 @@ 20.3.0-oe2403sp1: path: 20.3.0/24.03-lts-sp1/Dockerfile + +20.3.0-oe2403sp2: + path: 20.3.0/24.03-lts-sp2/Dockerfile \ No newline at end of file