From 9c908b4c02a1aeb7d0d460b43685a7f254bf4ab7 Mon Sep 17 00:00:00 2001 From: wjunLu Date: Wed, 6 Aug 2025 17:31:46 +0800 Subject: [PATCH 1/2] Add docs for images --- Others/siege/README.md | 70 ++++++++++++++++++ Others/siege/doc/image-info.yml | 69 +++++++++++++++++ Others/siege/doc/picture/logo.png | Bin 0 -> 33854 bytes .../snort3/3.7.2.0/24.03-lts-sp1/Dockerfile | 2 +- Others/snort3/README.md | 65 ++++++++++++++++ Others/snort3/doc/image-info.yml | 63 ++++++++++++++++ Others/snort3/doc/picture/logo.png | Bin 0 -> 38521 bytes Others/solr/README.md | 36 +++++++++ Others/solr/doc/image-info.yml | 35 +++++++++ Others/solr/doc/picture/logo.png | Bin 0 -> 38521 bytes 10 files changed, 339 insertions(+), 1 deletion(-) create mode 100644 Others/siege/README.md create mode 100644 Others/siege/doc/image-info.yml create mode 100644 Others/siege/doc/picture/logo.png create mode 100644 Others/snort3/README.md create mode 100644 Others/snort3/doc/image-info.yml create mode 100644 Others/snort3/doc/picture/logo.png create mode 100644 Others/solr/README.md create mode 100644 Others/solr/doc/image-info.yml create mode 100644 Others/solr/doc/picture/logo.png diff --git a/Others/siege/README.md b/Others/siege/README.md new file mode 100644 index 00000000..28905288 --- /dev/null +++ b/Others/siege/README.md @@ -0,0 +1,70 @@ +# Quick reference + +- The official siege 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). + +# Siege | openEuler +Current siege docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. + +Siege is an open source regression test and benchmark utility. It can stress test a single URL with a user defined number of simulated users, or it can read many URLs into memory and stress them simultaneously + +# Supported tags and respective Dockerfile links +The tag of each `siege` docker image is consist of the version of `siege` and the version of basic image. The details are as follows + +| Tag | Currently | Architectures | +|---------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|---------------| +| [4.1.7-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Others/siege/4.1.7/24.03-lts-sp1/Dockerfile) | Siege 4.1.7 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +# Usage +- Pull the `openeuler/siege` image from docker + + ```bash + docker pull openeuler/siege:latest + ``` + +- Start a siege instance + + ``` + docker run -it openeuler/siege:latest + ``` + You can now run tasks by following commands + ``` + Usage: siege [options] + siege [options] URL + siege -g URL + Options: + -V, --version VERSION, prints the version number. + -h, --help HELP, prints this section. + -C, --config CONFIGURATION, show the current config. + -v, --verbose VERBOSE, prints notification to screen. + -q, --quiet QUIET turns verbose off and suppresses output. + -g, --get GET, pull down HTTP headers and display the + transaction. Great for application debugging. + -p, --print PRINT, like GET only it prints the entire page. + -c, --concurrent=NUM CONCURRENT users, default is 10 + -r, --reps=NUM REPS, number of times to run the test. + -t, --time=NUMm TIMED testing where "m" is modifier S, M, or H + ex: --time=1H, one hour test. + -d, --delay=NUM Time DELAY, random delay before each request + -b, --benchmark BENCHMARK: no delays between requests. + -i, --internet INTERNET user simulation, hits URLs randomly. + -f, --file=FILE FILE, select a specific URLS FILE. + -R, --rc=FILE RC, specify an siegerc file + -l, --log[=FILE] LOG to FILE. If FILE is not specified, the + default is used: PREFIX/var/siege.log + -m, --mark="text" MARK, mark the log file with a string. + between .001 and NUM. (NOT COUNTED IN STATS) + -H, --header="text" Add a header to request (can be many) + -A, --user-agent="text" Sets User-Agent in request + -T, --content-type="text" Sets Content-Type in request + -j, --json-output JSON OUTPUT, print final stats to stdout as JSON + --no-parser NO PARSER, turn off the HTML page parser + --no-follow NO FOLLOW, do not follow HTTP redirects + + ``` + +# 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/siege/doc/image-info.yml b/Others/siege/doc/image-info.yml new file mode 100644 index 00000000..6e21c20b --- /dev/null +++ b/Others/siege/doc/image-info.yml @@ -0,0 +1,69 @@ +name: siege +category: others +description: Siege 是一款开源回归测试和基准测试实用程序。它可以使用用户定义的模拟用户数量对单个 URL 进行压力测试,也可以将多个 URL 读入内存并同时对其进行压力测试。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + siege镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tag | Currently | Architectures | + |----------|-------------|------------------| + | [4.1.7-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Others/siege/4.1.7/24.03-lts-sp1/Dockerfile) | Siege 4.1.7 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/siege:{Tag} + ``` + +usage: | + - 启动siege实例 + + ``` + docker run -it openeuler/siege:{Tag} + ``` + + 用户可以根据如下提示执行siege: + ``` + Usage: siege [options] + siege [options] URL + siege -g URL + Options: + -V, --version VERSION, prints the version number. + -h, --help HELP, prints this section. + -C, --config CONFIGURATION, show the current config. + -v, --verbose VERBOSE, prints notification to screen. + -q, --quiet QUIET turns verbose off and suppresses output. + -g, --get GET, pull down HTTP headers and display the + transaction. Great for application debugging. + -p, --print PRINT, like GET only it prints the entire page. + -c, --concurrent=NUM CONCURRENT users, default is 10 + -r, --reps=NUM REPS, number of times to run the test. + -t, --time=NUMm TIMED testing where "m" is modifier S, M, or H + ex: --time=1H, one hour test. + -d, --delay=NUM Time DELAY, random delay before each request + -b, --benchmark BENCHMARK: no delays between requests. + -i, --internet INTERNET user simulation, hits URLs randomly. + -f, --file=FILE FILE, select a specific URLS FILE. + -R, --rc=FILE RC, specify an siegerc file + -l, --log[=FILE] LOG to FILE. If FILE is not specified, the + default is used: PREFIX/var/siege.log + -m, --mark="text" MARK, mark the log file with a string. + between .001 and NUM. (NOT COUNTED IN STATS) + -H, --header="text" Add a header to request (can be many) + -A, --user-agent="text" Sets User-Agent in request + -T, --content-type="text" Sets Content-Type in request + -j, --json-output JSON OUTPUT, print final stats to stdout as JSON + --no-parser NO PARSER, turn off the HTML page parser + --no-follow NO FOLLOW, do not follow HTTP redirects + + ``` + +license: GPL-3.0 license +similar_packages: + - N/A +dependency: + - N/A diff --git a/Others/siege/doc/picture/logo.png b/Others/siege/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..25573565d7b75489b3549968896fe297fc9ffad5 GIT binary patch literal 33854 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 aRVw9w!cM6G literal 0 HcmV?d00001 diff --git a/Others/snort3/3.7.2.0/24.03-lts-sp1/Dockerfile b/Others/snort3/3.7.2.0/24.03-lts-sp1/Dockerfile index 0a56d243..32bc156a 100644 --- a/Others/snort3/3.7.2.0/24.03-lts-sp1/Dockerfile +++ b/Others/snort3/3.7.2.0/24.03-lts-sp1/Dockerfile @@ -13,7 +13,7 @@ RUN git clone -b v3.0.19 https://github.com/snort3/libdaq.git && \ ./bootstrap && ./configure && \ make -j$nproc && make install -ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/daq +ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH RUN git clone -b ${VERSION} https://github.com/snort3/snort3.git && \ cd snort3 && \ ./configure_cmake.sh --prefix=/usr/local && \ diff --git a/Others/snort3/README.md b/Others/snort3/README.md new file mode 100644 index 00000000..5e9ac914 --- /dev/null +++ b/Others/snort3/README.md @@ -0,0 +1,65 @@ +# Quick reference + +- The official snort3 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). + +# snort3 | openEuler +Current snort3 docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. + +Snort 3 is the next generation Snort IPS (Intrusion Prevention System). + +# Supported tags and respective Dockerfile links +The tag of each `snort3` docker image is consist of the version of `snort3` and the version of basic image. The details are as follows + +| Tag | Currently | Architectures | +|---------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|---------------| +| [3.7.2.0-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Others/snort3/3.7.2.0/24.03-lts-sp1/Dockerfile) | Snort3 3.7.2.0 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +# Usage +- Pull the `openeuler/snort3` image from docker + + ```bash + docker pull openeuler/snort3:latest + ``` + +- Start a snort3 instance + + ``` + docker run -it openeuler/snort3:latest + ``` + + Please use `snort --help` to display the details + ``` + Snort has several options to get more help: + + -? list command line options (same as --help) + --help this overview of help + --help-commands [] output matching commands + --help-config [] output matching config options + --help-counts [] output matching peg counts + --help-limits print the int upper bounds denoted by max* + --help-module output description of given module + --help-modules list all available modules with brief help + --help-modules-json dump description of all available modules in JSON format + --help-plugins list all available plugins with brief help + --help-options [