From 5fe1cc0bac431d7a6fb5f8da8a664e9f6140c5da Mon Sep 17 00:00:00 2001 From: "Arnaud G. GIBERT" Date: Tue, 18 Nov 2025 20:33:09 +0100 Subject: [PATCH] - Initial release. --- .gitignore | 2 + Dockerfile | 45 ++++++++++ ReadMe.txt | 19 ++++ ReleaseNotes.txt | 6 ++ compose.yaml | 104 +++++++++++++++++++++ env.dist | 119 +++++++++++++++++++++++++ etc/mediawiki/.gitignore | 4 + var/lib/mediawiki/images/.gitignore | 2 + var/lib/mediawiki/images/.htaccess | 10 +++ var/lib/mediawiki/images/README | 2 + var/lib/mediawiki/trash/.gitignore | 4 + var/lib/pgsql/.gitignore | 4 + var/log/httpd-webapp/.gitignore | 4 + var/log/init-database/.gitignore | 4 + var/log/init-webapp/.gitignore | 4 + var/log/postgres/.gitignore | 4 + var/log/supervisor-database/.gitignore | 4 + var/log/supervisor-webapp/.gitignore | 4 + 18 files changed, 345 insertions(+) create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 ReadMe.txt create mode 100644 ReleaseNotes.txt create mode 100644 compose.yaml create mode 100644 env.dist create mode 100644 etc/mediawiki/.gitignore create mode 100644 var/lib/mediawiki/images/.gitignore create mode 100644 var/lib/mediawiki/images/.htaccess create mode 100644 var/lib/mediawiki/images/README create mode 100644 var/lib/mediawiki/trash/.gitignore create mode 100644 var/lib/pgsql/.gitignore create mode 100644 var/log/httpd-webapp/.gitignore create mode 100644 var/log/init-database/.gitignore create mode 100644 var/log/init-webapp/.gitignore create mode 100644 var/log/postgres/.gitignore create mode 100644 var/log/supervisor-database/.gitignore create mode 100644 var/log/supervisor-webapp/.gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..556bc65 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*~ +*.old diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fe27aba --- /dev/null +++ b/Dockerfile @@ -0,0 +1,45 @@ +# Rx3-Docker/MediaWiki Dockerfile +#------------------------------------------------------------------------------- + +ARG IMG_FROM_URL="rx3-docker/php-apache:latest" + +FROM ${IMG_FROM_URL} + +ARG IMG_NAME +ARG IMG_NAME_FULL +ARG IMG_VERSION +ARG IMG_MAINTAINER + +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 MEDIAWIKI_VERSION=1.43.5 + + + +#---------------------------------------------------------------------------------------------------- +ARG MEDIAWIKI='#!/bin/bash \n\ + \n\ +chown -R apache:apache ${APACHE_DOC_ROOT} \n\ +chmod -R a-x,a+X ${APACHE_DOC_ROOT} \n\ +chmod o-rwx ${APACHE_DOC_ROOT} \n\ +chmod -R o+rwX ${APACHE_DOC_ROOT}/mediawiki/config \n\ + \n\ + \n\ +sed -i -e "s%mailhub=mail%mailhub=${SMTP_SERVER}%" /etc/ssmtp/ssmtp.conf' +#---------------------------------------------------------------------------------------------------- + + + +RUN urpmi.update -a \ + && urpmi --force wget ssmtp php-iconv php-fileinfo php-dom php-apcu php-gd git \ + && wget -q -O - https://releases.wikimedia.org/mediawiki/1.43/mediawiki-${MEDIAWIKI_VERSION}.tar.gz | tar xzvf - -C /var/www/html \ + && mv /var/www/html/mediawiki-${MEDIAWIKI_VERSION} /var/www/html/mediawiki \ + && ln -s /var/www/html/mediawiki/config/LocalSettings.php /var/www/html/mediawiki \ + && chown -R root:root /var/www \ + && chmod -R 775 /var/www \ + && echo -e "${MEDIAWIKI}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/mediawiki \ + && chmod a+x /etc/init.d/mediawiki \ + && ln -s /etc/init.d/mediawiki /etc/rcD.d/S40mediawiki diff --git a/ReadMe.txt b/ReadMe.txt new file mode 100644 index 0000000..74b8332 --- /dev/null +++ b/ReadMe.txt @@ -0,0 +1,19 @@ +Welcome to Rx3-Docker/MediaWiki docker image! + + + +This project aims to build a MediaWiki docker image. + +Features: + - Curtently based on rx3-docker/php-apache:1.5.4-mga9 & rx3-docker/postgresql:1.1.4-mga9 images, + - Sync with MediaWiki 1.43.5. + + + +Enjoy it! + +Your Rx3 Team. + +-- +arnaud@rx3.net +https://git.rx3.org/gitea/rx3-docker/mantisbt diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt new file mode 100644 index 0000000..8a38428 --- /dev/null +++ b/ReleaseNotes.txt @@ -0,0 +1,6 @@ +------------------------------------------------------------------------------------------------------------------------------------ +Rx3-Docker/MediaWiki V 1.0.0 - A. GIBERT - 2025/11/18 +------------------------------------------------------------------------------------------------------------------------------------ + +- Initial release, +- Use based on rx3-docker/php-apache:1.5.4-mga9 & rx3-docker/postgresql:1.1.4-mga9 images. diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..3eee1d6 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,104 @@ +# Rx3-Docker/MediaWiki Docker Image +#------------------------------------------------------------------------------- + +name: ${HOST_NAME_PREFIX} + +services: + database: + container_name: ${DB_HOST_NAME} + hostname: ${DB_HOST_NAME} + + image: ${DB_IMG_URL} + + restart: unless-stopped + + environment: + POSTGRESQL_UID: ${DB_USER_ID} + POSTGRESQL_GID: ${DB_GROUP_ID} + POSTGRESQL_POSTGRES_PASSWORD: ${DB_POSTGRES_PASSWORD} + POSTGRESQL_DATABASE: ${DB_NAME} + POSTGRESQL_USER: ${DB_USER} + POSTGRESQL_PASSWORD: ${DB_PASSWORD} + + healthcheck: + test: ["CMD-SHELL", "sh -c 'pg_isready -U ${DB_USER} -d ${DB_NAME}'"] + interval: 10s + timeout: 3s + retries: 3 + + volumes: + - ./${DB_LIB_EXT}:${DB_LIB_INT} + - ./${DB_LOG_INIT_EXT}:${DB_LOG_INIT_INT} + - ./${DB_LOG_SV_EXT}:${DB_LOG_SV_INT} + - ./${DB_LOG_MAIN_EXT}:${DB_LOG_MAIN_INT} + + networks: + - appl + +# ports: +# - "127.0.0.1:${DB_PORT_SV_EXT}:${DB_PORT_SV_INT}" +# - "127.0.0.1:${DB_PORT_MAIN_EXT}:${DB_PORT_MAIN_INT}" + + + +#------------------------------------------------------------------------------- + + webapp: + container_name: ${WA_HOST_NAME} + hostname: ${WA_HOST_NAME} + + image: ${WA_IMG_URL} + + build: + context: . + args: + IMG_NAME: ${WA_IMG_URL} + IMG_NAME_FULL: ${WA_IMG_NAME_FULL} + IMG_VERSION: ${WA_IMG_VERSION} + IMG_MAINTAINER: ${APPL_MAINTAINER} + IMG_FROM_URL: ${WA_IMG_FROM_URL} + + restart: unless-stopped + + depends_on: + database: + condition: service_healthy + + environment: + SERVER_CROND_ENABLED: ${WA_CROND_ENABLED} + APACHE_UID: ${WA_USER_ID} + APACHE_GID: ${WA_GROUP_ID} + APACHE_DOC_ROOT: ${WA_APACHE_DOC_ROOT} + PHP_UPLOAD_LIMIT: ${WA_PHP_UPLOAD_LIMIT} + + volumes: + - ./${WA_LOG_INIT_EXT}:${WA_LOG_INIT_INT} + - ./${WA_LOG_SV_EXT}:${WA_LOG_SV_INT} + - ./${WA_LOG_HTTPD_EXT}:${WA_LOG_HTTPD_INT} + + - ./${WA_CONF_EXT}:${WA_CONF_INT} + - ./${WA_IMG_EXT}:${WA_IMG_INT} + - ./${WA_TRASH_EXT}:${WA_TRASH_INT} + + networks: + - appl +# - internal + + ports: + - "127.0.0.1:${WA_PORT_SV_EXT}:${WA_PORT_SV_INT}" + - "127.0.0.1:${WA_PORT_MAIN_EXT}:${WA_PORT_MAIN_INT}" + +networks: + appl: + name: ${NETWORK_NAME} + driver: bridge + driver_opts: + com.docker.network.bridge.name: ${NETWORK_IF_NAME} +# ipam: +# config: +# - subnet: 10.2.33.0/24 +# gateway: 10.2.33.254 + +# internal: +# name: mantisbt-squashtm-internal +# external: true diff --git a/env.dist b/env.dist new file mode 100644 index 0000000..8d3c041 --- /dev/null +++ b/env.dist @@ -0,0 +1,119 @@ +# Rx3-Docker/MediaWiki Docker Image +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +# Global Settings +#------------------------------------------------------------------------------- + +ORG_NAME="rx3-docker" +ORG_REGISTRY="docker.xor.rx3:5000" + +ORG_URL_PREFIX="${ORG_REGISTRY}/${ORG_NAME}" + + + +#------------------------------------------------------------------------------- +# Image Settings +#------------------------------------------------------------------------------- + +APPL_NAME="mediawiki" +APPL_NAME_FULL="MediaWiki Server" +APPL_NAME_SHORT="mediawk" +APPL_ORG="rx3-docker" +APPL_VERSION="1.0.0" +APPL_MAINTAINER='"Arnaud G. GIBERT" ' + + + +#------------------------------------------------------------------------------- +# User Settings +#------------------------------------------------------------------------------- + +#APPL_ENV="prd" +#APPL_ENV="tst" +#APPL_ENV="int" +APPL_ENV="dvp" + + + +#------------------------------------------------------------------------------- +# Common +#------------------------------------------------------------------------------- + +if [[ "${APPL_ENV}" != "prd" ]] +then + APPL_SUFFIX="-${APPL_ENV}" + PORT_ENV_OFFSET=100 +else + APPL_SUFFIX="" + PORT_ENV_OFFSET=0 +fi + +ORG_URL_PREFIX="${ORG_REGISTRY}/${ORG_NAME}" +APPL_URL_PREFIX="${ORG_REGISTRY}/${APPL_ORG}/${APPL_NAME_SHORT}" + +HOST_NAME_PREFIX=${APPL_NAME_SHORT}${APPL_SUFFIX} + +PORT_ENV_OFFSET=0 + +PORT_SV_INT=9001 +PORT_SV_OFFSET=1000 + +NETWORK_NAME=${HOST_NAME_PREFIX} +NETWORK_IF_NAME=br-${HOST_NAME_PREFIX} + +DOCKER_TOOLS_DEBUG=FALSE +DOCKER_TOOLS_VOLUME=MIXED +#DOCKER_TOOLS_VOLUME=MERGED +DOCKER_TOOLS_EXEPTION_LIBS="postgres:pgsql" + + + +#------------------+----------+--------------------------+--------------------+------------------+-------------------------------+----------------------+--------------------+---------------+------------+--------------+------------+-------+-------+-------+-------+--------------+--------------+ +# | 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 DB database ${ORG_URL_PREFIX} postgresql - 1.1.4-mga9 - - - postgres - - 5432 - - postgres postgres + +docker_service_add WA webapp ${ORG_URL_PREFIX} mediawiki "Rx3-Docker/MediaWiki" ${APPL_VERSION}-mga9 ${ORG_URL_PREFIX} php-apache 1.5.4-mga9 - - 8070 80 - - apache apache + + + +#------------------------------------------------------------------------------- +# Database +#------------------------------------------------------------------------------- + +DB_POSTGRES_PASSWORD="postgresadmin" +DB_NAME="mediawiki" +DB_USER="mediawiki" +DB_PASSWORD="mediawikiadmin" + +DB_SERVER_NAME="MediaWiki" + + + +#------------------------------------------------------------------------------- +# WebApp +#------------------------------------------------------------------------------- + +WA_CROND_ENABLED="FALSE" + +WA_APACHE_DOC_ROOT="/var/www/html" +WA_PHP_UPLOAD_LIMIT="64M" + +WA_LOG_HTTPD_EXT="./var/log/httpd-webapp" +WA_LOG_HTTPD_INT="/var/log/httpd" + +WA_CONF_EXT=./etc/${APPL_NAME} +WA_CONF_INT=${WA_APACHE_DOC_ROOT}/${APPL_NAME}/config + +WA_IMG_EXT=./var/lib/mediawiki/images +WA_IMG_INT=${WA_APACHE_DOC_ROOT}/${APPL_NAME}/images + +WA_TRASH_EXT=./var/lib/mediawiki/trash +WA_TRASH_INT=/var/www/trash + +#docker_config_add ${WA_CONF_EXT}/config_inc.php ${WA_CONF_EXT}/config_inc.php.ref + +#WA_SMTP_SERVER="mail.rx3.net" diff --git a/etc/mediawiki/.gitignore b/etc/mediawiki/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/etc/mediawiki/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/var/lib/mediawiki/images/.gitignore b/var/lib/mediawiki/images/.gitignore new file mode 100644 index 0000000..556bc65 --- /dev/null +++ b/var/lib/mediawiki/images/.gitignore @@ -0,0 +1,2 @@ +*~ +*.old diff --git a/var/lib/mediawiki/images/.htaccess b/var/lib/mediawiki/images/.htaccess new file mode 100644 index 0000000..e96e113 --- /dev/null +++ b/var/lib/mediawiki/images/.htaccess @@ -0,0 +1,10 @@ + +Header set X-Content-Type-Options nosniff + + +php_flag engine off + +# In php8, php dropped the version number. + +php_flag engine off + diff --git a/var/lib/mediawiki/images/README b/var/lib/mediawiki/images/README new file mode 100644 index 0000000..e6d6c11 --- /dev/null +++ b/var/lib/mediawiki/images/README @@ -0,0 +1,2 @@ +If uploads are enabled in the wiki, files will be put in subdirectories +under here. diff --git a/var/lib/mediawiki/trash/.gitignore b/var/lib/mediawiki/trash/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/lib/mediawiki/trash/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/var/lib/pgsql/.gitignore b/var/lib/pgsql/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/lib/pgsql/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/var/log/httpd-webapp/.gitignore b/var/log/httpd-webapp/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/log/httpd-webapp/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/var/log/init-database/.gitignore b/var/log/init-database/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/log/init-database/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/var/log/init-webapp/.gitignore b/var/log/init-webapp/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/log/init-webapp/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/var/log/postgres/.gitignore b/var/log/postgres/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/log/postgres/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/var/log/supervisor-database/.gitignore b/var/log/supervisor-database/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/log/supervisor-database/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/var/log/supervisor-webapp/.gitignore b/var/log/supervisor-webapp/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/log/supervisor-webapp/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore