From 607eb5eee3b7728a9597edaec492c75b99bc0497 Mon Sep 17 00:00:00 2001 From: "Arnaud G. GIBERT" Date: Sun, 24 Nov 2024 23:47:07 +0100 Subject: [PATCH] - Add RedPanda Console tool, - Now support docker-tools V 1.3.x. --- Dockerfile | 70 ++++++++++++++++++++++++++++++++++++------------ ReadMe.txt | 3 ++- ReleaseNotes.txt | 9 +++++++ compose.yaml | 62 +++++++++++++++++++++++------------------- env.dist | 41 +++++++++++++--------------- 5 files changed, 116 insertions(+), 69 deletions(-) diff --git a/Dockerfile b/Dockerfile index ae186f8..fd65c8b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,35 +10,71 @@ ARG IMG_NAME_FULL ARG IMG_VERSION ARG IMG_MAINTAINER -ARG APACHE_DOC_ROOT - 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 APACHE_DOC_ROOT +ARG REDPANDA_CONSOLE_PORT + + ARG PHPPGADMIN_OWNER="mentax" ARG PHPPGADMIN_COMMIT="d0d35701af8644788f84b808d21e7fd04213baa0" +ARG PHPPGADMIN_HOME="${APACHE_DOC_ROOT}/phppgadmin" +ARG PHPPGADMIN_CONFIG="${PHPPGADMIN_HOME}/conf/config.inc.php" + +ARG REDPANDA_CONSOLE_HOME="/opt/appl/redpanda_console" +ARG REDPANDA_CONSOLE_CONFIG="${REDPANDA_CONSOLE_HOME}/etc/redpanda-console-config.yaml" -#--------------------------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ARG TOOLSD='#!/bin/bash \n\ \n\ -sed -i "s/$conf\[`servers`\]\[0\]\[`desc`\] = `PostgreSQL`;/$conf\[`servers`\]\[0\]\[`desc`\] = `${POSTGRESQL_SERVER_NAME}`;/" '${APACHE_DOC_ROOT}'/phppgadmin/conf/config.inc.php \n\ -sed -i "s/$conf\[`servers`\]\[0\]\[`host`\] = ``;/$conf\[`servers`\]\[0\]\[`host`\] = `${POSTGRESQL_HOST}`;/" '${APACHE_DOC_ROOT}'/phppgadmin/conf/config.inc.php \n\ -sed -i "s/$conf\[`servers`\]\[0\]\[`port`\] = 5432;/$conf\[`servers`\]\[0\]\[`port`\] = ${POSTGRESQL_PORT};/" '${APACHE_DOC_ROOT}'/phppgadmin/conf/config.inc.php \n\ -sed -i "s/$conf\[`extra_login_security`\] = true;/$conf\[`extra_login_security`\] = false;/" '${APACHE_DOC_ROOT}'/phppgadmin/conf/config.inc.php' -#--------------------------------------------------------------------------------------------------- +sed -i "s/$conf\[`servers`\]\[0\]\[`desc`\] = `PostgreSQL`;/$conf\[`servers`\]\[0\]\[`desc`\] = `${POSTGRESQL_SERVER_NAME}`;/" '${PHPPGADMIN_CONFIG}' \n\ +sed -i "s/$conf\[`servers`\]\[0\]\[`host`\] = ``;/$conf\[`servers`\]\[0\]\[`host`\] = `${POSTGRESQL_HOST}`;/" '${PHPPGADMIN_CONFIG}' \n\ +sed -i "s/$conf\[`servers`\]\[0\]\[`port`\] = 5432;/$conf\[`servers`\]\[0\]\[`port`\] = ${POSTGRESQL_PORT};/" '${PHPPGADMIN_CONFIG}' \n\ +sed -i "s/$conf\[`extra_login_security`\] = true;/$conf\[`extra_login_security`\] = false;/" '${PHPPGADMIN_CONFIG}'' +#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ARG REDPANDA_CONSOLED='#!/bin/bash \n\ + \n\ +sed -i "s/^ - broker-/ #- broker-/" '${REDPANDA_CONSOLE_CONFIG}' \n\ + \n\ +for broker in ${KAFKA_BROKERS} \n\ +do \n\ + sed -i "s/^ brokers:/ brokers:\\n - ${broker}/" '${REDPANDA_CONSOLE_CONFIG}' \n\ +done \n\ + \n\ +sed -i "s/^#server:/server:/" '${REDPANDA_CONSOLE_CONFIG}' \n\ +sed -i "s/^ #listenPort: 8080/ listenPort: '${REDPANDA_CONSOLE_PORT}'/" '${REDPANDA_CONSOLE_CONFIG}'' +#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +ARG REDPANDA_CONSOLED_INI='[program:redpanda_consoled] \n\ +directory='${REDPANDA_CONSOLE_HOME}' \n\ +command='${REDPANDA_CONSOLE_HOME}'/bin/redpanda-console -config.filepath '${REDPANDA_CONSOLE_CONFIG}'' +#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -RUN urpmi --force wget \ - && mkdir -p /var/www/appl \ - && wget -q -O- "https://github.com/${PHPPGADMIN_OWNER}/phppgadmin/archive/${PHPPGADMIN_COMMIT}.tar.gz" | tar xzf - -C ${APACHE_DOC_ROOT} \ - && mv ${APACHE_DOC_ROOT}/phppgadmin-${PHPPGADMIN_COMMIT} ${APACHE_DOC_ROOT}/phppgadmin \ - && sed -i 's/$_SERVER\['\''REQUEST_URI'\''\]/preg_replace(\"\/^\\\/phppgadmin\\\/\/", "", $_SERVER['\''REQUEST_URI'\''])/g' ${APACHE_DOC_ROOT}/phppgadmin/display.php \ - && cp ${APACHE_DOC_ROOT}/phppgadmin/conf/config.inc.php-dist ${APACHE_DOC_ROOT}/phppgadmin/conf/config.inc.php \ - && echo -e "${TOOLSD}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/toolsd \ - && chmod a+x /etc/init.d/toolsd \ - && ln -s /etc/init.d/toolsd /etc/rcD.d/S40toolsd +#RUN urpmi --force wget phpmyadmin \ +RUN urpmi --force wget \ + && mkdir -p /var/www/appl \ + && wget -q -O- "https://github.com/${PHPPGADMIN_OWNER}/phppgadmin/archive/${PHPPGADMIN_COMMIT}.tar.gz" | tar xzf - -C ${APACHE_DOC_ROOT} \ + && mv ${APACHE_DOC_ROOT}/phppgadmin-${PHPPGADMIN_COMMIT} ${APACHE_DOC_ROOT}/phppgadmin \ + && sed -i 's/$_SERVER\['\''REQUEST_URI'\''\]/preg_replace(\"\/^\\\/phppgadmin\\\/\/", "", $_SERVER['\''REQUEST_URI'\''])/g' ${APACHE_DOC_ROOT}/phppgadmin/display.php \ + && cp ${APACHE_DOC_ROOT}/phppgadmin/conf/config.inc.php-dist ${APACHE_DOC_ROOT}/phppgadmin/conf/config.inc.php \ + && echo -e "${TOOLSD}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/toolsd \ + && chmod a+x /etc/init.d/toolsd \ + && ln -s /etc/init.d/toolsd /etc/rcD.d/S40toolsd \ + && mkdir -p ${REDPANDA_CONSOLE_HOME}/bin ${REDPANDA_CONSOLE_HOME}/etc \ + && wget -q -O- "https://github.com/redpanda-data/console/releases/download/v2.7.2/redpanda_console_2.7.2_linux_amd64.tar.gz" | tar xzf - -C ${REDPANDA_CONSOLE_HOME}/bin \ + && wget -q -O- "https://docs.redpanda.com/current/shared/_attachments/redpanda-console-config.yaml" > ${REDPANDA_CONSOLE_CONFIG} \ + && echo -e "${REDPANDA_CONSOLED}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/redpanda_consoled \ + && chmod a+x /etc/init.d/redpanda_consoled \ + && ln -s /etc/init.d/redpanda_consoled /etc/rcD.d/S45redpanda_consoled \ + && echo -e "${REDPANDA_CONSOLED_INI}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/supervisord.d/redpanda_consoled.ini diff --git a/ReadMe.txt b/ReadMe.txt index 32ab7d1..c9a83f3 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -7,7 +7,8 @@ This project aims to build a docker image embeding some usefull tools to tests o Features: - Curtently based on rx3-docker/php-apache:1.4.0-mga9 image, - PHPPGAdmin (Mentax GitHub 2024/07 commit) installed (URL: http://localhost:xxxx/phppgadmin/), - - PostgreSQL server name, host & port configurable. + - PostgreSQL server name, host & port configurable, + - RedPenda Console tool (V2.7.2). Enjoy it! diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt index 101f4b2..9c6e0d7 100644 --- a/ReleaseNotes.txt +++ b/ReleaseNotes.txt @@ -1,3 +1,12 @@ +------------------------------------------------------------------------------------------------------------------------------------ +Rx3-Docker/Tools V 1.2.0 - A. GIBERT - 2024/11/24 +------------------------------------------------------------------------------------------------------------------------------------ + +- Add RedPanda Console tool, +- Now support docker-tools V 1.3.x. + + + ------------------------------------------------------------------------------------------------------------------------------------ Rx3-Docker/Tools V 1.1.0 - A. GIBERT - 2024/11/11 ------------------------------------------------------------------------------------------------------------------------------------ diff --git a/compose.yaml b/compose.yaml index 9d50017..debe694 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,50 +1,56 @@ # Rx3-Docker/Tools Docker Image #------------------------------------------------------------------------------- -name: ${IMG_NAME} +name: ${HOST_NAME_PREFIX} services: webtools: - container_name: ${IMG_NAME} - hostname: ${IMG_NAME} + container_name: ${TOOLS_HOST_NAME} + hostname: ${TOOLS_HOST_NAME} - image: ${IMG_URL} + image: ${TOOLS_IMG_URL} build: context: . args: - IMG_NAME: ${IMG_NAME} - IMG_NAME_FULL: ${IMG_NAME_FULL} - IMG_VERSION: ${IMG_VERSION} - IMG_MAINTAINER: ${IMG_MAINTAINER} - IMG_FROM_URL: ${IMG_FROM_URL} + IMG_NAME: ${TOOLS_IMG_NAME} + IMG_NAME_FULL: ${TOOLS_IMG_NAME_FULL} + IMG_VERSION: ${TOOLS_IMG_VERSION} + IMG_MAINTAINER: ${TOOLS_IMG_MAINTAINER} + IMG_FROM_URL: ${TOOLS_IMG_FROM_URL} - APACHE_DOC_ROOT: ${WEBTOOLS_DOC_ROOT} + APACHE_DOC_ROOT: ${TOOLS_DOC_ROOT} + REDPANDA_CONSOLE_PORT: ${TOOLS_PORT_ADMIN_INT} - restart: unless-stopped + restart: unless-stopped environment: - APACHE_DOC_ROOT: ${WEBTOOLS_DOC_ROOT} - POSTGRESQL_SERVER_NAME: ${POSTGRESQL_SERVER_NAME} - POSTGRESQL_HOST: ${POSTGRESQL_HOST} - POSTGRESQL_PORT: ${POSTGRESQL_PORT} - MARIADB_SERVER_NAME: ${MARIADB_SERVER_NAME} - MARIADB_HOST: ${MARIADB_HOST} - MARIADB_PORT: ${MARIADB_PORT} + APACHE_DOC_ROOT: ${TOOLS_DOC_ROOT} + + POSTGRESQL_SERVER_NAME: ${POSTGRESQL_SERVER_NAME} + POSTGRESQL_HOST: ${POSTGRESQL_HOST} + POSTGRESQL_PORT: ${POSTGRESQL_PORT} + + MARIADB_SERVER_NAME: ${MARIADB_SERVER_NAME} + MARIADB_HOST: ${MARIADB_HOST} + MARIADB_PORT: ${MARIADB_PORT} + + KAFKA_BROKERS: ${KAFKA_HOST}:${KAFKA_PORT} healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:${WEBTOOLS_PORT_MAIN_INT}"] - interval: 10s - timeout: 3s - retries: 3 + test: ["CMD", "curl", "-f", "http://localhost:${TOOLS_PORT_MAIN_INT}"] + interval: 10s + timeout: 3s + retries: 3 volumes: -# - ./var/www/html:${WEBTOOLS_DOC_ROOT} - - ./var/log/init:${WEBTOOLS_LOG_INIT_DIR} - - ./var/log/supervisor:${WEBTOOLS_LOG_SV_DIR} - - ./var/log/httpd:${WEBTOOLS_LOG_HTTPD_DIR} +# - ./var/www/html:${TOOLS_DOC_ROOT} + - .${TOOLS_LOG_INIT_EXT}:${TOOLS_LOG_INIT_INT} + - .${TOOLS_LOG_SV_EXT}:${TOOLS_LOG_SV_INT} + - .${TOOLS_LOG_HTTPD_EXT}:${TOOLS_LOG_HTTPD_INT} ports: - - "127.0.0.1:${WEBTOOLS_PORT_SV_EXT}:${WEBTOOLS_PORT_SV_INT}" - - "127.0.0.1:${WEBTOOLS_PORT_MAIN_EXT}:${WEBTOOLS_PORT_MAIN_INT}" + - "127.0.0.1:${TOOLS_PORT_SV_EXT}:${TOOLS_PORT_SV_INT}" + - "127.0.0.1:${TOOLS_PORT_MAIN_EXT}:${TOOLS_PORT_MAIN_INT}" + - "127.0.0.1:${TOOLS_PORT_ADMIN_EXT}:${TOOLS_PORT_ADMIN_INT}" diff --git a/env.dist b/env.dist index 32e55bc..3c79fbc 100644 --- a/env.dist +++ b/env.dist @@ -16,16 +16,21 @@ ORG_URL_PREFIX="${ORG_REGISTRY}/${ORG_NAME}" # Image Settings #------------------------------------------------------------------------------- +HOST_NAME_PREFIX="" -IMG_NAME="tools" -IMG_NAME_FULL="Rx3-Docker/Tools Docker Image" -IMG_VERSION="1.1.0-mga9" -IMG_MAINTAINER='"Arnaud G. GIBERT" ' +PORT_ENV_OFFSET=0 -IMG_URL_PREFIX="${ORG_URL_PREFIX}" -IMG_URL="${IMG_URL_PREFIX}/${IMG_NAME}:${IMG_VERSION}" +PORT_SV_INT=9001 +PORT_SV_OFFSET=1000 -IMG_FROM_URL="${ORG_URL_PREFIX}/php-apache:1.4.0-mga9" + + +#------------------+----------+--------------------------+--------------------+------------------+-------------------------------+-----------------+--------------------+---------------+------------+--------------+------------+-------+-------+-------+-------+--------------+--------------+ +# | Variable | Service | Target Image | From Image | Module | Main Port | Admin Port | User | Group | +# | Prefix | Name | URL Prefix | Name | Name Full | Version | URL Prefix | Name | Version | Name | Version | Ext | Int | Ext | Int | Name / Id | Name / Id | +#------------------+----------+--------------------------+--------------------+------------------+-------------------------------+-----------------+--------------------+---------------+------------+--------------+------------+-------+-------+-------+-------+--------------+--------------+ + +docker_service_add TOOLS tools ${ORG_URL_PREFIX} - "Rx3-Docker/Tools" 1.2.0-mga9 ${ORG_URL_PREFIX} php-apache 1.4.0-mga9 - - 8070 80 8092 8080 apache apache @@ -33,23 +38,10 @@ IMG_FROM_URL="${ORG_URL_PREFIX}/php-apache:1.4.0-mga9" # User Settings #------------------------------------------------------------------------------- -ENV_PORT_OFFSET=0 -SV_PORT_OFFSET=1000 +TOOLS_LOG_HTTPD_INT="/var/log/httpd" +TOOLS_LOG_HTTPD_EXT="./var/log/httpd" -WEBTOOLS_PORT_MAIN_EXT=$(( 8070 + ${ENV_PORT_OFFSET})) -WEBTOOLS_PORT_MAIN_INT=80 - -WEBTOOLS_PORT_SV_EXT=$(( ${WEBTOOLS_PORT_MAIN_EXT} + ${SV_PORT_OFFSET})) -WEBTOOLS_PORT_SV_INT=9001 - -WEBTOOLS_LOG_INIT_DIR="/var/log/init" -WEBTOOLS_LOG_SV_DIR="/var/log/supervisor" -WEBTOOLS_LOG_HTTPD_DIR="/var/log/httpd" - -WEBTOOLS_DOC_ROOT="/var/www/html" - -APACHE_UID=980 -APACHE_GID=977 +TOOLS_DOC_ROOT="/var/www/html" POSTGRESQL_SERVER_NAME="Default" POSTGRESQL_HOST="127.0.0.1" @@ -58,3 +50,6 @@ POSTGRESQL_PORT="5342" MARIADB_SERVER_NAME="Default" MARIADB_HOST="127.0.0.1" MARIADB_PORT="3306" + +KAFKA_HOST="127.0.0.1" +KAFKA_PORT="9092"