From ef8a7804522125554a160bf25b187ac6bc60ff37 Mon Sep 17 00:00:00 2001 From: "Arnaud G. GIBERT" Date: Tue, 12 Nov 2024 21:52:33 +0100 Subject: [PATCH] - Move & Rename repo from Rx3/RabbitMQ-MGA9 to Rx3-Docker/RabbitMQ, - New version naming standard, - Now use docker_tools for .env building, - Use now rx3-docker/server:1.2.0-mga9 image, - Add /var/log/init & /var/log/supervisor volumes, - Add healthcheck example in compose file. --- Dockerfile | 38 ++++++++++++-------- ReadMe.txt | 10 +++--- ReleaseNotes.txt | 13 +++++++ compose.yaml | 59 +++++++++++++++++++------------ env => env.dist | 37 +++++++++++++------ var/lib/{ => rabbitmq}/.gitignore | 0 var/log/init/.gitignore | 4 +++ var/log/supervisor/.gitignore | 4 +++ 8 files changed, 111 insertions(+), 54 deletions(-) rename env => env.dist (51%) rename var/lib/{ => rabbitmq}/.gitignore (100%) create mode 100644 var/log/init/.gitignore create mode 100644 var/log/supervisor/.gitignore diff --git a/Dockerfile b/Dockerfile index 9b6134f..a8a6fa1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,25 +1,33 @@ -# Rx3 RabbitMQ Mageia-9 Docker Image +# Rx3-Docker/RabbitMQ Docker Image #------------------------------------------------------------------------------- -ARG IMG_URL_PREFIX="rx3" +ARG IMG_FROM_URL="rx3-docker/server:latest" -FROM ${IMG_URL_PREFIX}/server-mga9:1.1.3 +FROM ${IMG_FROM_URL} ARG IMG_NAME -ARG IMG_FULL_NAME +ARG IMG_NAME_FULL ARG IMG_VERSION ARG IMG_MAINTAINER -LABEL org.rx3.${IMG_NAME}.name=${IMG_FULL_NAME} +LABEL org.rx3.${IMG_NAME}.name=${IMG_NAME_FULL} LABEL org.rx3.${IMG_NAME}.version=${IMG_VERSION} LABEL org.rx3.${IMG_NAME}.maintainer=${IMG_MAINTAINER} LABEL maintainer=${IMG_MAINTAINER} +ARG RABBITMQ_LIB +ARG RABBITMQ_PORT_MAIN +ARG RABBITMQ_PORT_ADMIN +ARG POSTRMQ_LOG_DIR + +ARG POSTRMQ_LOG_FILE="${POSTRMQ_LOG_DIR}/postrmq.log" ARG RABBITMQ_LIB=/var/lib/rabbitmq ARG RABBITMQ_PORT=5672 ARG RABBITMQ_ADMIN_PORT=15672 + + #------------------------------------------------------------------------------------------------------------------- ARG RABBITMQD='#!/bin/bash \n\ \n\ @@ -38,7 +46,7 @@ user=root' #------------------------------------------------------------------------------------------------------------------- ARG POSTRMQ='#!/bin/bash \n\ \n\ -function log() { echo "$(date --rfc-3339=ns) PostRMQ: $*" | tee -a /var/log/postrmq.log; } \n\ +function log() { echo "$(date --rfc-3339=ns) PostRMQ: $*" | tee -a '${POSTRMQ_LOG_FILE}'; } \n\ \n\ log "Starting" \n\ \n\ @@ -74,18 +82,18 @@ command=/usr/local/sbin/postrmq' RUN urpmi --force lksctp-tools \ && rpm -Uvh http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-erts-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-crypto-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-kernel-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-stdlib-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-syntax_tools-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-hipe-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-compiler-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-mnesia-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-runtime_tools-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-asn1-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-public_key-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-ssl-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-inets-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-tools-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-sasl-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-eldap-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-snmp-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-os_mon-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/release/erlang-sd_notify-1.1-1.mga8.noarch.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/erlang-xmerl-23.2.1-3.2.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/rabbitmq-server-3.8.18-1.mga8.x86_64.rpm http://mirror.xor.rx3/mageia/distrib/8/x86_64/media/core/updates/lib64openssl1.1-1.1.1v-1.mga8.x86_64.rpm \ - && rabbitmq-plugins enable rabbitmq_management \ - && echo -e "${RABBITMQD}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/rabbitmqd \ - && chmod a+x /etc/init.d/rabbitmqd \ - && ln -s /etc/init.d/rabbitmqd /etc/rcD.d/S40rabbitmqd \ - && echo -e "${RABBITMQD_INI}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/supervisord.d/rabbitmqd.ini \ - && echo -e "${POSTRMQ}" | sed -e "s/\`/'/g" -e 's/ *$//' > /usr/local/sbin/postrmq \ - && chmod a+x /usr/local/sbin/postrmq \ + && rabbitmq-plugins enable rabbitmq_management \ + && echo -e "${RABBITMQD}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/rabbitmqd \ + && chmod a+x /etc/init.d/rabbitmqd \ + && ln -s /etc/init.d/rabbitmqd /etc/rcD.d/S40rabbitmqd \ + && echo -e "${RABBITMQD_INI}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/supervisord.d/rabbitmqd.ini \ + && echo -e "${POSTRMQ}" | sed -e "s/\`/'/g" -e 's/ *$//' > /usr/local/sbin/postrmq \ + && chmod a+x /usr/local/sbin/postrmq \ && echo -e "${POSTRMQ_INI}" | sed -e 's/ *$//' > /etc/supervisord.d/postrmq.ini VOLUME ${RABBITMQ_LIB} -EXPOSE ${RABBITMQ_ADMIN_PORT} -EXPOSE ${RABBITMQ_ADMIN_PORT} +EXPOSE ${RABBITMQ_PORT_MAIN} +EXPOSE ${RABBITMQ_PORT_ADMIN} diff --git a/ReadMe.txt b/ReadMe.txt index 93f132c..26f9610 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,15 +1,15 @@ -Welcome to Rx3/RabbitMQ-Mga9 docker image! +Welcome to Rx3-Docker/RabbitMQ docker image! -This is project aims to build a RabbitMQ + Mageia 9 docker image used by others Rx3 packaging projects. +This project aims to build a RabbitMQ docker image used by others Rx3 packaging projects. Features: - - Curtently based on rx3/server-mga9:1.1.3 image, + - Curtently based on rx3-docker/server:1.2.0-mga9 image, - Fallback on RabbitMQ 3.8.18 from Mageia 8 next to broken Mageia 9 version! - Following env vars supported: - RABBITMQ_UID & RABBITMQ_GID, - - Management olugin enabled. + - Management plugin enabled. Enjoy it! @@ -18,4 +18,4 @@ Your Rx3 Team. -- arnaud@rx3.net -https://git.rx3.org/gitea/rx3/rabbitmq-mga9 +https://git.rx3.org/gitea/rx3-docker/rabbitmq diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt index 44c3c5c..d3a1716 100644 --- a/ReleaseNotes.txt +++ b/ReleaseNotes.txt @@ -1,3 +1,16 @@ +------------------------------------------------------------------------------------------------------------------------------------ +Rx3-Docker/RabbitMQ V 1.1.0 - A. GIBERT - 2024/11/12 +------------------------------------------------------------------------------------------------------------------------------------ + +- Move & Rename repo from Rx3/RabbitMQ-MGA9 to Rx3-Docker/RabbitMQ, +- New version naming standard, +- Now use docker_tools for .env building, +- Use now rx3-docker/server:1.2.0-mga9 image, +- Add /var/log/init & /var/log/supervisor volumes, +- Add healthcheck example in compose file. + + + ------------------------------------------------------------------------------------------------------------------------------------ Rx3/RabbitMQ-Mga9 V 1.0.2 - A. GIBERT - 2024/11/01 ------------------------------------------------------------------------------------------------------------------------------------ diff --git a/compose.yaml b/compose.yaml index 0d99d51..db3cca5 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,37 +1,50 @@ -# Rx3 RabbitMQ Mageia-9 Docker Image +# Rx3-Docker/RabbitMQ Docker Image #------------------------------------------------------------------------------- -name: ${IMG_NAME} +name: ${IMG_NAME} services: mqserver: - container_name: ${IMG_NAME} - hostname: ${IMG_NAME} + container_name: ${IMG_NAME} + hostname: ${IMG_NAME} - image: ${IMG_URL} + image: ${IMG_URL} build: - context: . + context: . args: - - IMG_NAME=${IMG_NAME} - - IMG_FULL_NAME=${IMG_FULL_NAME} - - IMG_VERSION=${IMG_VERSION} - - IMG_MAINTAINER=${IMG_MAINTAINER} - - IMG_URL_PREFIX=${IMG_URL_PREFIX} - - restart: unless-stopped + IMG_NAME: ${IMG_NAME} + IMG_NAME_FULL: ${IMG_NAME_FULL} + IMG_VERSION: ${IMG_VERSION} + IMG_MAINTAINER: ${IMG_MAINTAINER} + IMG_FROM_URL: ${IMG_FROM_URL} + + RABBITMQ_LIB: ${MQSERVER_LIB_DIR} + RABBITMQ_PORT_MAIN: ${MQSERVER_PORT_MAIN_INT} + RABBITMQ_PORT_ADMIN: ${MQSERVER_PORT_ADMIN_INT} + POSTRMQ_LOG_DIR: ${MQSERVER_LOG_POSTRMQ_DIR} + + restart: unless-stopped environment: - RABBITMQ_UID: ${RABBITMQ_UID} - RABBITMQ_GID: ${RABBITMQ_GID} - + RABBITMQ_UID: ${RABBITMQ_UID} + RABBITMQ_GID: ${RABBITMQ_GID} + + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:${MQSERVER_PORT_ADMIN_INT}"] + interval: 30s + timeout: 10s + start_period: 60s + start_interval: 10s + retries: 30 + volumes: - - ./var/lib/rabbitmq:/var/lib/rabbitmq - - network_mode: bridge - + - ./var/lib/rabbitmq:${MQSERVER_LIB_DIR} + - ./var/log/init:${MQSERVER_LOG_INIT_DIR} + - ./var/log/supervisor:${MQSERVER_LOG_SV_DIR} + ports: - - "127.0.0.1:${MQSERVER_SV_PORT}:9001" - - "127.0.0.1:${MQSERVER_PORT}:5672" - - "127.0.0.1:${MQSERVER_ADMIN_PORT}:15672" + - "127.0.0.1:${MQSERVER_PORT_SV_EXT}:${MQSERVER_PORT_SV_INT}" + - "127.0.0.1:${MQSERVER_PORT_MAIN_EXT}:${MQSERVER_PORT_MAIN_INT}" + - "127.0.0.1:${MQSERVER_PORT_ADMIN_EXT}:${MQSERVER_PORT_ADMIN_INT}" diff --git a/env b/env.dist similarity index 51% rename from env rename to env.dist index dd1edef..0f2dc9a 100644 --- a/env +++ b/env.dist @@ -1,13 +1,14 @@ -# Rx3 RabbitMQ Mageia-9 Docker Image +# Rx3-Docker/RabbitMQ Docker Image #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # Global Settings #------------------------------------------------------------------------------- -IMG_ORG="rx3" -IMG_REGISTRY="docker.xor.rx3:5000" -IMG_URL_PREFIX="${IMG_REGISTRY}/${IMG_ORG}" +ORG_NAME="rx3-docker" +ORG_REGISTRY="docker.xor.rx3:5000" + +ORG_URL_PREFIX="${ORG_REGISTRY}/${ORG_NAME}" @@ -15,12 +16,16 @@ IMG_URL_PREFIX="${IMG_REGISTRY}/${IMG_ORG}" # Image Settings #------------------------------------------------------------------------------- -IMG_NAME="rabbitmq-mga9" -IMG_FULL_NAME="Rx3 RabbitMQ Mageia-9 Docker Image" -IMG_VERSION="1.0.2" -IMG_URL="${IMG_URL_PREFIX}/${IMG_NAME}:${IMG_VERSION}" +IMG_NAME="rabbitmq" +IMG_NAME_FULL="Rx3-Docker/PostgreSQL Docker Image" +IMG_VERSION="1.1.0-mga9" IMG_MAINTAINER='"Arnaud G. GIBERT" ' +IMG_URL_PREFIX="${ORG_URL_PREFIX}" +IMG_URL="${IMG_URL_PREFIX}/${IMG_NAME}:${IMG_VERSION}" + +IMG_FROM_URL="${ORG_URL_PREFIX}/server:1.2.0-mga9" + #------------------------------------------------------------------------------- @@ -30,9 +35,19 @@ IMG_MAINTAINER='"Arnaud G. GIBERT" ' ENV_PORT_OFFSET=0 SV_PORT_OFFSET=1000 -MQSERVER_PORT=$(( 8072 + ${ENV_PORT_OFFSET})) -MQSERVER_ADMIN_PORT=$(( 8073 + ${ENV_PORT_OFFSET})) -MQSERVER_SV_PORT=$(( ${MQSERVER_PORT} + ${SV_PORT_OFFSET})) +MQSERVER_PORT_MAIN_EXT=$(( 8072 + ${ENV_PORT_OFFSET})) +MQSERVER_PORT_MAIN_INT=5672 + +MQSERVER_PORT_ADMIN_EXT=$(( 8073 + ${ENV_PORT_OFFSET})) +MQSERVER_PORT_ADMIN_INT=15672 + +MQSERVER_PORT_SV_EXT=$(( ${MQSERVER_PORT_MAIN_EXT} + ${SV_PORT_OFFSET})) +MQSERVER_PORT_SV_INT=9001 + +MQSERVER_LIB_DIR="/var/lib/pgsql" +MQSERVER_LOG_INIT_DIR="/var/log/init" +MQSERVER_LOG_SV_DIR="/var/log/supervisor" +MQSERVER_LOG_POSTRMQ_DIR="${MQSERVER_LOG_SV_DIR}" RABBITMQ_UID=480 RABBITMQ_GID=398 diff --git a/var/lib/.gitignore b/var/lib/rabbitmq/.gitignore similarity index 100% rename from var/lib/.gitignore rename to var/lib/rabbitmq/.gitignore diff --git a/var/log/init/.gitignore b/var/log/init/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/log/init/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/var/log/supervisor/.gitignore b/var/log/supervisor/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/log/supervisor/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore