diff --git a/14.4/mariadb-tomcat/.env b/14.4/mariadb-tomcat/.env deleted file mode 100644 index 5ee414929763172d91a8b16d1cb703c9c83e08a8..0000000000000000000000000000000000000000 --- a/14.4/mariadb-tomcat/.env +++ /dev/null @@ -1,6 +0,0 @@ -# Default environment values -XWIKI_VERSION=14.4.8 -DB_USER=xwiki -DB_PASSWORD=xwiki -DB_DATABASE=xwiki -MYSQL_ROOT_PASSWORD=xwiki diff --git a/14.4/mariadb-tomcat/Dockerfile b/14.4/mariadb-tomcat/Dockerfile deleted file mode 100644 index 03f8e641e9fac4b3eac44ba0362c335e7ad19d4c..0000000000000000000000000000000000000000 --- a/14.4/mariadb-tomcat/Dockerfile +++ /dev/null @@ -1,115 +0,0 @@ -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- -FROM tomcat:9-jre11 - -# ____ ____ ____ ____ _ __ _ -# |_ _||_ _||_ _| |_ _|(_) [ | _ (_) -# \ \ / / \ \ /\ / / __ | | / ] __ -# > `' < \ \/ \/ / [ | | '' < [ | -# _/ /'`\ \_ \ /\ / | | | |`\ \ | | -# |____||____| \/ \/ [___][__| \_][___] - -LABEL org.opencontainers.image.authors='XWiki Development Team <committers@xwiki.org>' -LABEL org.opencontainers.image.url='https://hub.docker.com/_/xwiki' -LABEL org.opencontainers.image.documentation='https://hub.docker.com/_/xwiki' -LABEL org.opencontainers.image.source='https://github.com/xwiki/xwiki-docker.git' -LABEL org.opencontainers.image.vendor='xwiki.org' -LABEL org.opencontainers.image.licenses='LGPL-2.1' - -# Note: when using docker-compose, the ENV values below are overridden from the .env file. - -# Install LibreOffice + other tools -# Note that procps is required to get ps which is used by JODConverter to start LibreOffice -RUN apt-get update && \ - apt-get --no-install-recommends -y install \ - curl \ - libreoffice \ - unzip \ - procps && \ - rm -rf /var/lib/apt/lists/* - -# Install XWiki as the ROOT webapp context in Tomcat -# Create the Tomcat temporary directory -# Configure the XWiki permanent directory -ENV XWIKI_VERSION="14.4.8" -ENV XWIKI_URL_PREFIX "https://maven.xwiki.org/releases/org/xwiki/platform/xwiki-platform-distribution-war/${XWIKI_VERSION}" -ENV XWIKI_DOWNLOAD_SHA256 79cc9b25eaa104496be9f135c706c1e6cb1730d38ebc523724d8583c2522051e -RUN rm -rf /usr/local/tomcat/webapps/* && \ - mkdir -p /usr/local/tomcat/temp && \ - mkdir -p /usr/local/xwiki/data && \ - curl -fSL "${XWIKI_URL_PREFIX}/xwiki-platform-distribution-war-${XWIKI_VERSION}.war" -o xwiki.war && \ - echo "$XWIKI_DOWNLOAD_SHA256 xwiki.war" | sha256sum -c - && \ - unzip -d /usr/local/tomcat/webapps/ROOT xwiki.war && \ - rm -f xwiki.war - -# Copy the JDBC driver in the XWiki webapp -# For MariaDB, download the MariaDB driver version from the Maven Central repository to control the version -# used. -ENV MARIADB_JDBC_VERSION="3.1.3" -ENV MARIADB_JDBC_SHA256="11297ee6562426c49c81387c860153cbc131c4c3d042492d4f6d2d97ab3a1ca5" -ENV MARIADB_JDBC_PREFIX="https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/${MARIADB_JDBC_VERSION}" -ENV MARIADB_JDBC_ARTIFACT="mariadb-java-client-${MARIADB_JDBC_VERSION}.jar" -ENV MARIADB_JDBC_TARGET="/usr/local/tomcat/webapps/ROOT/WEB-INF/lib/${MARIADB_JDBC_ARTIFACT}" -RUN curl -fSL "${MARIADB_JDBC_PREFIX}/${MARIADB_JDBC_ARTIFACT}" -o $MARIADB_JDBC_TARGET && \ - echo "$MARIADB_JDBC_SHA256 $MARIADB_JDBC_TARGET" | sha256sum -c - - -# Configure Tomcat. For example set the memory for the Tomcat JVM since the default value is too small for XWiki -COPY tomcat/setenv.sh /usr/local/tomcat/bin/ - -# Setup the XWiki Hibernate configuration -COPY xwiki/hibernate.cfg.xml /usr/local/tomcat/webapps/ROOT/WEB-INF/hibernate.cfg.xml - -# Set a specific distribution id in XWiki for this docker packaging. -RUN sed -i 's/<id>org.xwiki.platform:xwiki-platform-distribution-war/<id>org.xwiki.platform:xwiki-platform-distribution-docker/' \ - /usr/local/tomcat/webapps/ROOT/META-INF/extension.xed - -# Add scripts required to make changes to XWiki configuration files at execution time -# Note: we don't run CHMOD since 1) it's not required since the executabe bit is already set in git and 2) running -# CHMOD after a COPY will sometimes fail, depending on different host-specific factors (especially on AUFS). -COPY xwiki/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh - -# Make the XWiki directory (the permanent directory is included in it) persist on the host (so that it's not recreated -# across runs) -VOLUME /usr/local/xwiki - -# At this point the image is done and what remains below are the runtime configuration used by the user to configure -# the container that will be created out of the image. Namely the user can override some environment variables with -# docker run -e "var1=val1" -e "var2=val2" ... -# The supported environment variables that can be overridden are: -# - DB_USER: the name of the user configured for XWiki in the DB. Default is "xwiki". This is used to configure -# xwiki's hibernate.cfg.xml file. -# - DB_PASSWORD: the password for the user configured for XWiki in the DB. Default is "xwiki". This is used to -# configure xwiki's hibernate.cfg.xml file. -# - DB_DATABASE: the name of the database to use. Default is "xwiki". This is used to configure xwiki's -# hibernate.cfg.xml file. -# - DB_HOST: The name of the host (or docker container) containing the database. Default is "db". This is used to -# configure xwiki's hibernate.cfg.xml file. -# - CONTEXT_PATH: The name of the context path under which XWiki will be deployed in Tomcat. If not specified then it'll -# be deployed as ROOT. - -# Example: -# docker run -it -e "DB_USER=xwiki" -e "DB_PASSWORD=xwiki" <imagename> - -# Starts XWiki by starting Tomcat. All options passed to "docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]" -# are also passed to docker-entrypoint.sh. If "xwiki" is passed then XWiki will be configured the first time the -# container executes and Tomcat will be started. If some other parameter is passed then it'll be executed to comply -# with best practices defined at https://github.com/docker-library/official-images#consistency. -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["xwiki"] diff --git a/14.4/mariadb-tomcat/docker-compose.yml b/14.4/mariadb-tomcat/docker-compose.yml deleted file mode 100644 index 0c91a64d494a3f7323a48e4ddd723cc0c3581924..0000000000000000000000000000000000000000 --- a/14.4/mariadb-tomcat/docker-compose.yml +++ /dev/null @@ -1,73 +0,0 @@ -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- -version: '2' -networks: - bridge: - driver: bridge -services: - # The container that runs XWiki + Tomcat - web: - build: . - container_name: xwiki-mariadb-tomcat-web - depends_on: - - db - ports: - - "8080:8080" - # Default values defined in .env file. - # The DB_USER/DB_PASSWORD/DB_DATABASE/DB_HOST variables are used in the hibernate.cfg.xml file. - environment: - - XWIKI_VERSION=${XWIKI_VERSION} - - DB_USER=${DB_USER} - - DB_PASSWORD=${DB_PASSWORD} - - DB_DATABASE=${DB_DATABASE} - - DB_HOST=xwiki-mariadb-db - # Provide a name instead of an auto-generated id for xwiki data (the permanent directory in included in it) - # configured in the Dockerfile, to make it simpler to identify in 'docker volume ls'. - volumes: - - xwiki-data:/usr/local/xwiki - networks: - - bridge - # The container that runs the database (mariadb) - db: - image: "mariadb:10.5" - container_name: xwiki-mariadb-db - # - We provide a xwiki.cnf file in order to configure the mysql db to support UTF8 and be case-insensitive - # We have to do it here since we use an existing image and that's how this image allows customizations. - # See https://hub.docker.com/_/mariadb/ for more details. - # - Provide a name instead of an auto-generated id for the mariadb data, to make it simpler to identify in - # 'docker volume ls' - volumes: - - ./mariadb/xwiki.cnf:/etc/mysql/conf.d/xwiki.cnf - - mariadb-data:/var/lib/mysql - - ./mariadb/init.sql:/docker-entrypoint-initdb.d/init.sql - - # Configure the MariaDB database and create a user with provided name/password. - # See https://hub.docker.com/_/mariadb/ for more details. - # Default values defined in .env file. - environment: - - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - - MYSQL_USER=${DB_USER} - - MYSQL_PASSWORD=${DB_PASSWORD} - - MYSQL_DATABASE=${DB_DATABASE} - networks: - - bridge -volumes: - mariadb-data: {} - xwiki-data: {} diff --git a/14.4/mariadb-tomcat/mariadb/init.sql b/14.4/mariadb-tomcat/mariadb/init.sql deleted file mode 100644 index e246499f7264b61281c95346fc78f270619d9d6a..0000000000000000000000000000000000000000 --- a/14.4/mariadb-tomcat/mariadb/init.sql +++ /dev/null @@ -1 +0,0 @@ -grant all privileges on *.* to xwiki@'%' \ No newline at end of file diff --git a/14.4/mariadb-tomcat/mariadb/xwiki.cnf b/14.4/mariadb-tomcat/mariadb/xwiki.cnf deleted file mode 100644 index 9c14b16285ad030ffb8b0db6ca85728d1486410d..0000000000000000000000000000000000000000 --- a/14.4/mariadb-tomcat/mariadb/xwiki.cnf +++ /dev/null @@ -1,31 +0,0 @@ -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- - -[client] -default-character-set = utf8 - -[mysqld] -character-set-server = utf8 -collation-server = utf8_bin -explicit_defaults_for_timestamp = 1 - -[mysql] -default-character-set = utf8 - diff --git a/14.4/mariadb-tomcat/tomcat/setenv.sh b/14.4/mariadb-tomcat/tomcat/setenv.sh deleted file mode 100755 index 755f260ef22e6b02f80c92ae6a07d47610cec7b4..0000000000000000000000000000000000000000 --- a/14.4/mariadb-tomcat/tomcat/setenv.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- - -# We're making the following changes to the default: -# * Adding more memory (default is 512MB which is not enough for XWiki) -# * By default, Tomcat does not allow the usage of encoded slash '%2F' and backslash '%5C' in URLs, as noted in -# https://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10. We want to allow for them as it's useful to -# be able to have '/' and '' in wiki page names. -# * On some system /dev/random is slow to init leading to a slow Tomcat and thus Xwiki startup. - -# Users can override these values by setting the JAVA_OPTS environment variable. For example: -# -e JAVA_OPTS="-Xmx2048m" - -XMX="-Xmx1024m" -ALLOW_ENCODED_SLASH="-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true" -ALLOW_BACKSLASH="-Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true" -SECURERANDOM="-Djava.security.egd=file:/dev/./urandom" - -if [[ ! -z "$JAVA_OPTS" ]]; then - if [[ ! $JAVA_OPTS =~ .*-Xmx[0-9]+.* ]]; then - JAVA_OPTS="$JAVA_OPTS $XMX" - fi - if [[ ! $JAVA_OPTS =~ .*ALLOW_ENCODED_SLASH.* ]]; then - JAVA_OPTS="$JAVA_OPTS $ALLOW_ENCODED_SLASH" - fi - if [[ ! $JAVA_OPTS =~ .*ALLOW_BACKSLASH.* ]]; then - JAVA_OPTS="$JAVA_OPTS $ALLOW_BACKSLASH" - fi - if [[ ! $JAVA_OPTS =~ .*java\.security\.egd.* ]]; then - JAVA_OPTS="$JAVA_OPTS $SECURERANDOM" - fi -else - JAVA_OPTS="$XMX $ALLOW_ENCODED_SLASH $ALLOW_BACKSLASH $SECURERANDOM" -fi - -export JAVA_OPTS diff --git a/14.4/mariadb-tomcat/xwiki/docker-entrypoint.sh b/14.4/mariadb-tomcat/xwiki/docker-entrypoint.sh deleted file mode 100755 index e8de6d1276d21d1479eae464afb7b1f246b47283..0000000000000000000000000000000000000000 --- a/14.4/mariadb-tomcat/xwiki/docker-entrypoint.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/bin/bash -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- - -set -e - -function first_start() { - configure - touch /usr/local/tomcat/webapps/$CONTEXT_PATH/.first_start_completed -} - -function other_starts() { - mkdir -p /usr/local/xwiki/data - restoreConfigurationFile 'hibernate.cfg.xml' - restoreConfigurationFile 'xwiki.cfg' - restoreConfigurationFile 'xwiki.properties' -} - -# $1 - the path to xwiki.[cfg|properties] -# $2 - the setting/property to set -# $3 - the new value -function xwiki_replace() { - sed -i s~"\#\? \?$2 \?=.*"~"$2=$3"~g "$1" -} - -# $1 - the setting/property to set -# $2 - the new value -function xwiki_set_cfg() { - xwiki_replace /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/xwiki.cfg "$1" "$2" -} - -# $1 - the setting/property to set -# $2 - the new value -function xwiki_set_properties() { - xwiki_replace /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/xwiki.properties "$1" "$2" -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - local val="$def" - if [ "${!var:-}" ]; then - val="${!var}" - elif [ "${!fileVar:-}" ]; then - val="$(< "${!fileVar}")" - fi - export "$var"="$val" - unset "$fileVar" -} - -# Allows to use sed but with user input which can contain special sed characters such as \, / or &. -# $1 - the text to search for -# $2 - the replacement text -# $3 - the file in which to do the search/replace -function safesed { - sed -i "s/$(echo $1 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')/$(echo $2 | sed -e 's/[\/&]/\\&/g')/g" $3 -} - -# $1 - the config file name found in WEB-INF (e.g. "xwiki.cfg") -function saveConfigurationFile() { - if [ -f "/usr/local/xwiki/data/$1" ]; then - echo " Reusing existing config file $1..." - cp "/usr/local/xwiki/data/$1" "/usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/$1" - else - echo " Saving config file $1..." - cp "/usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/$1" "/usr/local/xwiki/data/$1" - fi -} - -# $1 - the config file name to restore in WEB-INF (e.g. "xwiki.cfg") -function restoreConfigurationFile() { - if [ -f "/usr/local/xwiki/data/$1" ]; then - echo " Synchronizing config file $1..." - cp "/usr/local/xwiki/data/$1" "/usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/$1" - else - echo " No config file $1 found, using default from container..." - cp "/usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/$1" "/usr/local/xwiki/data/$1" - fi -} - -function configure() { - echo 'Configuring XWiki...' - - echo 'Setting environment variables' - file_env 'DB_USER' 'xwiki' - file_env 'DB_PASSWORD' 'xwiki' - file_env 'DB_HOST' 'db' - file_env 'DB_DATABASE' 'xwiki' - file_env 'INDEX_HOST' 'localhost' - file_env 'INDEX_PORT' '8983' - - echo " Deploying XWiki in the '$CONTEXT_PATH' context" - if [ "$CONTEXT_PATH" == "ROOT" ]; then - xwiki_set_cfg 'xwiki.webapppath' '' - else - mv /usr/local/tomcat/webapps/ROOT /usr/local/tomcat/webapps/$CONTEXT_PATH - fi - - echo 'Replacing environment variables in files' - safesed "replaceuser" $DB_USER /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/hibernate.cfg.xml - safesed "replacepassword" $DB_PASSWORD /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/hibernate.cfg.xml - safesed "replacecontainer" $DB_HOST /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/hibernate.cfg.xml - safesed "replacedatabase" $DB_DATABASE /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/hibernate.cfg.xml - - # Set any non-default main wiki database name in the xwiki.cfg file. - if [ "$DB_DATABASE" != "xwiki" ]; then - xwiki_set_cfg "xwiki.db" $DB_DATABASE - fi - - echo ' Generating authentication validation and encryption keys...' - xwiki_set_cfg 'xwiki.authentication.validationKey' "$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" - xwiki_set_cfg 'xwiki.authentication.encryptionKey' "$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" - - echo ' Setting permanent directory...' - xwiki_set_properties 'environment.permanentDirectory' '/usr/local/xwiki/data' - echo ' Configure libreoffice...' - xwiki_set_properties 'openoffice.autoStart' 'true' - - if [ $INDEX_HOST != 'localhost' ]; then - echo ' Configuring remote Solr Index' - xwiki_set_properties 'solr.type' 'remote' - xwiki_set_properties 'solr.remote.url' "http://$INDEX_HOST:$INDEX_PORT/solr/xwiki" - fi - - # If the files already exist then copy them to the XWiki's WEB-INF directory. Otherwise copy the default config - # files to the permanent directory so that they can be easily modified by the user. They'll be synced at the next - # start. - mkdir -p /usr/local/xwiki/data - saveConfigurationFile 'hibernate.cfg.xml' - saveConfigurationFile 'xwiki.cfg' - saveConfigurationFile 'xwiki.properties' -} - -# This if will check if the first argument is a flag but only works if all arguments require a hyphenated flag -# -v; -SL; -f arg; etc will work, but not arg1 arg2 -if [ "${1:0:1}" = '-' ]; then - set -- xwiki "$@" -fi - -# Check for the expected command -if [ "$1" = 'xwiki' ]; then - file_env 'CONTEXT_PATH' 'ROOT' - if [[ ! -f /usr/local/tomcat/webapps/$CONTEXT_PATH/.first_start_completed ]]; then - first_start - else - other_starts - fi - shift - set -- catalina.sh run "$@" -fi - -# Else default to run whatever the user wanted like "bash" -exec "$@" diff --git a/14.4/mariadb-tomcat/xwiki/hibernate.cfg.xml b/14.4/mariadb-tomcat/xwiki/hibernate.cfg.xml deleted file mode 100644 index 03d6366c46ffdda5e6b12974c6be09864749b097..0000000000000000000000000000000000000000 --- a/14.4/mariadb-tomcat/xwiki/hibernate.cfg.xml +++ /dev/null @@ -1,103 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - * See the NOTICE file distributed with this work for additional - * information regarding copyright ownership. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. ---> - -<!DOCTYPE hibernate-configuration PUBLIC - "-//Hibernate/Hibernate Configuration DTD//EN" - "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> -<hibernate-configuration> - <session-factory> - - <!-- Please refer to the installation guide on - https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/ for configuring your - database. You'll need to do 2 things: - 1) Copy your database driver JAR in WEB-INF/lib or in some shared lib directory - 2) Uncomment the properties below for your specific DB (and comment the default - database configuration if it doesn't match your DB) - --> - - <!-- Generic parameters common to all Databases --> - - <property name="show_sql">false</property> - <property name="use_outer_join">true</property> - - <!-- Without it, some queries fail in MS SQL. XWiki doesn't need scrollable result sets, anyway. --> - <property name="jdbc.use_scrollable_resultset">false</property> - - <!-- DBCP Connection Pooling configuration. Only some properties are shown. All available properties can be found - at https://commons.apache.org/proper/commons-dbcp/configuration.html - --> - <property name="dbcp.defaultAutoCommit">false</property> - <property name="dbcp.maxTotal">50</property> - <property name="dbcp.maxIdle">5</property> - <property name="dbcp.maxWaitMillis">30000</property> - <property name="connection.provider_class">com.xpn.xwiki.store.DBCPConnectionProvider</property> - - <!-- Setting "dbcp.poolPreparedStatements" to true and "dbcp.maxOpenPreparedStatements" will tell DBCP to cache - Prepared Statements (it's off by default). Note that for backward compatibility the "dbcp.ps.maxActive" is also - supported and when set it'll set "dbcp.poolPreparedStatements" to true and "dbcp.maxOpenPreparedStatements" to - value of "dbcp.ps.maxActive". - - Note 1: When using HSQLDB for example, it's important to NOT cache prepared statements because HSQLDB - Prepared Statements (PS) contain the schema on which they were initially created and thus when switching - schema if the same PS is reused it'll execute on the wrong schema! Since HSQLDB does internally cache - prepared statement there's no performance loss by not caching Prepared Statements at the DBCP level. - See https://jira.xwiki.org/browse/XWIKI-1740. - Thus we recommend not turning on this configuration for HSQLDB unless you know what you're doing :) - - Note 2: The same applies to PostGreSQL. - --> - - <!-- BoneCP Connection Pooling configuration. - <property name="bonecp.idleMaxAgeInMinutes">240</property> - <property name="bonecp.idleConnectionTestPeriodInMinutes">60</property> - <property name="bonecp.partitionCount">3</property> - <property name="bonecp.acquireIncrement">10</property> - <property name="bonecp.maxConnectionsPerPartition">60</property> - <property name="bonecp.minConnectionsPerPartition">20</property> - <property name="bonecp.statementsCacheSize">50</property> - <property name="bonecp.releaseHelperThreads">3</property> - <property name="connection.provider_class">com.xpn.xwiki.store.DBCPConnectionProvider</property> - --> - - <!-- MariaDB configuration. - Notes: - - if you want the main wiki database to be different than "xwiki" - you will also have to set the property xwiki.db in xwiki.cfg file - --> - <property name="connection.url">jdbc:mariadb://replacecontainer/replacedatabase?useSSL=false</property> - <property name="connection.username">replaceuser</property> - <property name="connection.password">replacepassword</property> - <property name="connection.driver_class">org.mariadb.jdbc.Driver</property> - <property name="dbcp.poolPreparedStatements">true</property> - <property name="dbcp.maxOpenPreparedStatements">20</property> - - <property name="hibernate.connection.charSet">UTF-8</property> - <property name="hibernate.connection.useUnicode">true</property> - <property name="hibernate.connection.characterEncoding">utf8</property> - - <mapping resource="xwiki.hbm.xml"/> - <mapping resource="feeds.hbm.xml"/> - <mapping resource="instance.hbm.xml"/> - <mapping resource="notification-filter-preferences.hbm.xml"/> - <mapping resource="mailsender.hbm.xml"/> - </session-factory> -</hibernate-configuration> diff --git a/14.4/mysql-tomcat/.env b/14.4/mysql-tomcat/.env deleted file mode 100644 index 5ee414929763172d91a8b16d1cb703c9c83e08a8..0000000000000000000000000000000000000000 --- a/14.4/mysql-tomcat/.env +++ /dev/null @@ -1,6 +0,0 @@ -# Default environment values -XWIKI_VERSION=14.4.8 -DB_USER=xwiki -DB_PASSWORD=xwiki -DB_DATABASE=xwiki -MYSQL_ROOT_PASSWORD=xwiki diff --git a/14.4/mysql-tomcat/Dockerfile b/14.4/mysql-tomcat/Dockerfile deleted file mode 100644 index b8d5344a352848fdd420b34a201a28fd6eea08e4..0000000000000000000000000000000000000000 --- a/14.4/mysql-tomcat/Dockerfile +++ /dev/null @@ -1,115 +0,0 @@ -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- -FROM tomcat:9-jre11 - -# ____ ____ ____ ____ _ __ _ -# |_ _||_ _||_ _| |_ _|(_) [ | _ (_) -# \ \ / / \ \ /\ / / __ | | / ] __ -# > `' < \ \/ \/ / [ | | '' < [ | -# _/ /'`\ \_ \ /\ / | | | |`\ \ | | -# |____||____| \/ \/ [___][__| \_][___] - -LABEL org.opencontainers.image.authors='XWiki Development Team <committers@xwiki.org>' -LABEL org.opencontainers.image.url='https://hub.docker.com/_/xwiki' -LABEL org.opencontainers.image.documentation='https://hub.docker.com/_/xwiki' -LABEL org.opencontainers.image.source='https://github.com/xwiki/xwiki-docker.git' -LABEL org.opencontainers.image.vendor='xwiki.org' -LABEL org.opencontainers.image.licenses='LGPL-2.1' - -# Note: when using docker-compose, the ENV values below are overridden from the .env file. - -# Install LibreOffice + other tools -# Note that procps is required to get ps which is used by JODConverter to start LibreOffice -RUN apt-get update && \ - apt-get --no-install-recommends -y install \ - curl \ - libreoffice \ - unzip \ - procps && \ - rm -rf /var/lib/apt/lists/* - -# Install XWiki as the ROOT webapp context in Tomcat -# Create the Tomcat temporary directory -# Configure the XWiki permanent directory -ENV XWIKI_VERSION="14.4.8" -ENV XWIKI_URL_PREFIX "https://maven.xwiki.org/releases/org/xwiki/platform/xwiki-platform-distribution-war/${XWIKI_VERSION}" -ENV XWIKI_DOWNLOAD_SHA256 79cc9b25eaa104496be9f135c706c1e6cb1730d38ebc523724d8583c2522051e -RUN rm -rf /usr/local/tomcat/webapps/* && \ - mkdir -p /usr/local/tomcat/temp && \ - mkdir -p /usr/local/xwiki/data && \ - curl -fSL "${XWIKI_URL_PREFIX}/xwiki-platform-distribution-war-${XWIKI_VERSION}.war" -o xwiki.war && \ - echo "$XWIKI_DOWNLOAD_SHA256 xwiki.war" | sha256sum -c - && \ - unzip -d /usr/local/tomcat/webapps/ROOT xwiki.war && \ - rm -f xwiki.war - -# Copy the JDBC driver in the XWiki webapp -# For MYSQL, download the MySQL driver version from the Maven Central repository since there's no up to -# date Debian repository for it anymore. -ENV MYSQL_JDBC_VERSION="8.0.32" -ENV MYSQL_JDBC_SHA256="522329fe925980f02e5eb89b59d227245d345415ff0c08932a68c9765c13acc5" -ENV MYSQL_JDBC_PREFIX="https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/${MYSQL_JDBC_VERSION}" -ENV MYSQL_JDBC_ARTIFACT="mysql-connector-j-${MYSQL_JDBC_VERSION}.jar" -ENV MYSQL_JDBC_TARGET="/usr/local/tomcat/webapps/ROOT/WEB-INF/lib/${MYSQL_JDBC_ARTIFACT}" -RUN curl -fSL "${MYSQL_JDBC_PREFIX}/${MYSQL_JDBC_ARTIFACT}" -o $MYSQL_JDBC_TARGET && \ - echo "$MYSQL_JDBC_SHA256 $MYSQL_JDBC_TARGET" | sha256sum -c - - -# Configure Tomcat. For example set the memory for the Tomcat JVM since the default value is too small for XWiki -COPY tomcat/setenv.sh /usr/local/tomcat/bin/ - -# Setup the XWiki Hibernate configuration -COPY xwiki/hibernate.cfg.xml /usr/local/tomcat/webapps/ROOT/WEB-INF/hibernate.cfg.xml - -# Set a specific distribution id in XWiki for this docker packaging. -RUN sed -i 's/<id>org.xwiki.platform:xwiki-platform-distribution-war/<id>org.xwiki.platform:xwiki-platform-distribution-docker/' \ - /usr/local/tomcat/webapps/ROOT/META-INF/extension.xed - -# Add scripts required to make changes to XWiki configuration files at execution time -# Note: we don't run CHMOD since 1) it's not required since the executabe bit is already set in git and 2) running -# CHMOD after a COPY will sometimes fail, depending on different host-specific factors (especially on AUFS). -COPY xwiki/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh - -# Make the XWiki directory (the permanent directory is included in it) persist on the host (so that it's not recreated -# across runs) -VOLUME /usr/local/xwiki - -# At this point the image is done and what remains below are the runtime configuration used by the user to configure -# the container that will be created out of the image. Namely the user can override some environment variables with -# docker run -e "var1=val1" -e "var2=val2" ... -# The supported environment variables that can be overridden are: -# - DB_USER: the name of the user configured for XWiki in the DB. Default is "xwiki". This is used to configure -# xwiki's hibernate.cfg.xml file. -# - DB_PASSWORD: the password for the user configured for XWiki in the DB. Default is "xwiki". This is used to -# configure xwiki's hibernate.cfg.xml file. -# - DB_DATABASE: the name of the database to use. Default is "xwiki". This is used to configure xwiki's -# hibernate.cfg.xml file. -# - DB_HOST: The name of the host (or docker container) containing the database. Default is "db". This is used to -# configure xwiki's hibernate.cfg.xml file. -# - CONTEXT_PATH: The name of the context path under which XWiki will be deployed in Tomcat. If not specified then it'll -# be deployed as ROOT. - -# Example: -# docker run -it -e "DB_USER=xwiki" -e "DB_PASSWORD=xwiki" <imagename> - -# Starts XWiki by starting Tomcat. All options passed to "docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]" -# are also passed to docker-entrypoint.sh. If "xwiki" is passed then XWiki will be configured the first time the -# container executes and Tomcat will be started. If some other parameter is passed then it'll be executed to comply -# with best practices defined at https://github.com/docker-library/official-images#consistency. -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["xwiki"] diff --git a/14.4/mysql-tomcat/docker-compose.yml b/14.4/mysql-tomcat/docker-compose.yml deleted file mode 100644 index 61c9748af8707be831e8ef2e5d04078c4797bb58..0000000000000000000000000000000000000000 --- a/14.4/mysql-tomcat/docker-compose.yml +++ /dev/null @@ -1,73 +0,0 @@ -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- -version: '2' -networks: - bridge: - driver: bridge -services: - # The container that runs XWiki + Tomcat - web: - build: . - container_name: xwiki-mysql-tomcat-web - depends_on: - - db - ports: - - "8080:8080" - # Default values defined in .env file. - # The DB_USER/DB_PASSWORD/DB_DATABASE/DB_HOST variables are used in the hibernate.cfg.xml file. - environment: - - XWIKI_VERSION=${XWIKI_VERSION} - - DB_USER=${DB_USER} - - DB_PASSWORD=${DB_PASSWORD} - - DB_DATABASE=${DB_DATABASE} - - DB_HOST=xwiki-mysql-db - # Provide a name instead of an auto-generated id for xwiki data (the permanent directory in included in it) - # configured in the Dockerfile, to make it simpler to identify in 'docker volume ls'. - volumes: - - xwiki-data:/usr/local/xwiki - networks: - - bridge - # The container that runs the database (mysql) - db: - image: "mysql:5.7" - container_name: xwiki-mysql-db - # - We provide a xwiki.cnf file in order to configure the mysql db to support UTF8 and be case-insensitive - # We have to do it here since we use an existing image and that's how this image allows customizations. - # See https://hub.docker.com/_/mysql/ for more details. - # - Provide a name instead of an auto-generated id for the mysql data, to make it simpler to identify in - # 'docker volume ls' - volumes: - - ./mysql/xwiki.cnf:/etc/mysql/conf.d/xwiki.cnf - - mysql-data:/var/lib/mysql - - ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql - - # Configure the MySQL database and create a user with provided name/password. - # See https://hub.docker.com/_/mysql/ for more details. - # Default values defined in .env file. - environment: - - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - - MYSQL_USER=${DB_USER} - - MYSQL_PASSWORD=${DB_PASSWORD} - - MYSQL_DATABASE=${DB_DATABASE} - networks: - - bridge -volumes: - mysql-data: {} - xwiki-data: {} diff --git a/14.4/mysql-tomcat/mysql/init.sql b/14.4/mysql-tomcat/mysql/init.sql deleted file mode 100644 index e246499f7264b61281c95346fc78f270619d9d6a..0000000000000000000000000000000000000000 --- a/14.4/mysql-tomcat/mysql/init.sql +++ /dev/null @@ -1 +0,0 @@ -grant all privileges on *.* to xwiki@'%' \ No newline at end of file diff --git a/14.4/mysql-tomcat/mysql/xwiki.cnf b/14.4/mysql-tomcat/mysql/xwiki.cnf deleted file mode 100644 index 9c14b16285ad030ffb8b0db6ca85728d1486410d..0000000000000000000000000000000000000000 --- a/14.4/mysql-tomcat/mysql/xwiki.cnf +++ /dev/null @@ -1,31 +0,0 @@ -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- - -[client] -default-character-set = utf8 - -[mysqld] -character-set-server = utf8 -collation-server = utf8_bin -explicit_defaults_for_timestamp = 1 - -[mysql] -default-character-set = utf8 - diff --git a/14.4/mysql-tomcat/tomcat/setenv.sh b/14.4/mysql-tomcat/tomcat/setenv.sh deleted file mode 100755 index 755f260ef22e6b02f80c92ae6a07d47610cec7b4..0000000000000000000000000000000000000000 --- a/14.4/mysql-tomcat/tomcat/setenv.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- - -# We're making the following changes to the default: -# * Adding more memory (default is 512MB which is not enough for XWiki) -# * By default, Tomcat does not allow the usage of encoded slash '%2F' and backslash '%5C' in URLs, as noted in -# https://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10. We want to allow for them as it's useful to -# be able to have '/' and '' in wiki page names. -# * On some system /dev/random is slow to init leading to a slow Tomcat and thus Xwiki startup. - -# Users can override these values by setting the JAVA_OPTS environment variable. For example: -# -e JAVA_OPTS="-Xmx2048m" - -XMX="-Xmx1024m" -ALLOW_ENCODED_SLASH="-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true" -ALLOW_BACKSLASH="-Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true" -SECURERANDOM="-Djava.security.egd=file:/dev/./urandom" - -if [[ ! -z "$JAVA_OPTS" ]]; then - if [[ ! $JAVA_OPTS =~ .*-Xmx[0-9]+.* ]]; then - JAVA_OPTS="$JAVA_OPTS $XMX" - fi - if [[ ! $JAVA_OPTS =~ .*ALLOW_ENCODED_SLASH.* ]]; then - JAVA_OPTS="$JAVA_OPTS $ALLOW_ENCODED_SLASH" - fi - if [[ ! $JAVA_OPTS =~ .*ALLOW_BACKSLASH.* ]]; then - JAVA_OPTS="$JAVA_OPTS $ALLOW_BACKSLASH" - fi - if [[ ! $JAVA_OPTS =~ .*java\.security\.egd.* ]]; then - JAVA_OPTS="$JAVA_OPTS $SECURERANDOM" - fi -else - JAVA_OPTS="$XMX $ALLOW_ENCODED_SLASH $ALLOW_BACKSLASH $SECURERANDOM" -fi - -export JAVA_OPTS diff --git a/14.4/mysql-tomcat/xwiki/docker-entrypoint.sh b/14.4/mysql-tomcat/xwiki/docker-entrypoint.sh deleted file mode 100755 index e8de6d1276d21d1479eae464afb7b1f246b47283..0000000000000000000000000000000000000000 --- a/14.4/mysql-tomcat/xwiki/docker-entrypoint.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/bin/bash -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- - -set -e - -function first_start() { - configure - touch /usr/local/tomcat/webapps/$CONTEXT_PATH/.first_start_completed -} - -function other_starts() { - mkdir -p /usr/local/xwiki/data - restoreConfigurationFile 'hibernate.cfg.xml' - restoreConfigurationFile 'xwiki.cfg' - restoreConfigurationFile 'xwiki.properties' -} - -# $1 - the path to xwiki.[cfg|properties] -# $2 - the setting/property to set -# $3 - the new value -function xwiki_replace() { - sed -i s~"\#\? \?$2 \?=.*"~"$2=$3"~g "$1" -} - -# $1 - the setting/property to set -# $2 - the new value -function xwiki_set_cfg() { - xwiki_replace /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/xwiki.cfg "$1" "$2" -} - -# $1 - the setting/property to set -# $2 - the new value -function xwiki_set_properties() { - xwiki_replace /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/xwiki.properties "$1" "$2" -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - local val="$def" - if [ "${!var:-}" ]; then - val="${!var}" - elif [ "${!fileVar:-}" ]; then - val="$(< "${!fileVar}")" - fi - export "$var"="$val" - unset "$fileVar" -} - -# Allows to use sed but with user input which can contain special sed characters such as \, / or &. -# $1 - the text to search for -# $2 - the replacement text -# $3 - the file in which to do the search/replace -function safesed { - sed -i "s/$(echo $1 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')/$(echo $2 | sed -e 's/[\/&]/\\&/g')/g" $3 -} - -# $1 - the config file name found in WEB-INF (e.g. "xwiki.cfg") -function saveConfigurationFile() { - if [ -f "/usr/local/xwiki/data/$1" ]; then - echo " Reusing existing config file $1..." - cp "/usr/local/xwiki/data/$1" "/usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/$1" - else - echo " Saving config file $1..." - cp "/usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/$1" "/usr/local/xwiki/data/$1" - fi -} - -# $1 - the config file name to restore in WEB-INF (e.g. "xwiki.cfg") -function restoreConfigurationFile() { - if [ -f "/usr/local/xwiki/data/$1" ]; then - echo " Synchronizing config file $1..." - cp "/usr/local/xwiki/data/$1" "/usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/$1" - else - echo " No config file $1 found, using default from container..." - cp "/usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/$1" "/usr/local/xwiki/data/$1" - fi -} - -function configure() { - echo 'Configuring XWiki...' - - echo 'Setting environment variables' - file_env 'DB_USER' 'xwiki' - file_env 'DB_PASSWORD' 'xwiki' - file_env 'DB_HOST' 'db' - file_env 'DB_DATABASE' 'xwiki' - file_env 'INDEX_HOST' 'localhost' - file_env 'INDEX_PORT' '8983' - - echo " Deploying XWiki in the '$CONTEXT_PATH' context" - if [ "$CONTEXT_PATH" == "ROOT" ]; then - xwiki_set_cfg 'xwiki.webapppath' '' - else - mv /usr/local/tomcat/webapps/ROOT /usr/local/tomcat/webapps/$CONTEXT_PATH - fi - - echo 'Replacing environment variables in files' - safesed "replaceuser" $DB_USER /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/hibernate.cfg.xml - safesed "replacepassword" $DB_PASSWORD /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/hibernate.cfg.xml - safesed "replacecontainer" $DB_HOST /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/hibernate.cfg.xml - safesed "replacedatabase" $DB_DATABASE /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/hibernate.cfg.xml - - # Set any non-default main wiki database name in the xwiki.cfg file. - if [ "$DB_DATABASE" != "xwiki" ]; then - xwiki_set_cfg "xwiki.db" $DB_DATABASE - fi - - echo ' Generating authentication validation and encryption keys...' - xwiki_set_cfg 'xwiki.authentication.validationKey' "$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" - xwiki_set_cfg 'xwiki.authentication.encryptionKey' "$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" - - echo ' Setting permanent directory...' - xwiki_set_properties 'environment.permanentDirectory' '/usr/local/xwiki/data' - echo ' Configure libreoffice...' - xwiki_set_properties 'openoffice.autoStart' 'true' - - if [ $INDEX_HOST != 'localhost' ]; then - echo ' Configuring remote Solr Index' - xwiki_set_properties 'solr.type' 'remote' - xwiki_set_properties 'solr.remote.url' "http://$INDEX_HOST:$INDEX_PORT/solr/xwiki" - fi - - # If the files already exist then copy them to the XWiki's WEB-INF directory. Otherwise copy the default config - # files to the permanent directory so that they can be easily modified by the user. They'll be synced at the next - # start. - mkdir -p /usr/local/xwiki/data - saveConfigurationFile 'hibernate.cfg.xml' - saveConfigurationFile 'xwiki.cfg' - saveConfigurationFile 'xwiki.properties' -} - -# This if will check if the first argument is a flag but only works if all arguments require a hyphenated flag -# -v; -SL; -f arg; etc will work, but not arg1 arg2 -if [ "${1:0:1}" = '-' ]; then - set -- xwiki "$@" -fi - -# Check for the expected command -if [ "$1" = 'xwiki' ]; then - file_env 'CONTEXT_PATH' 'ROOT' - if [[ ! -f /usr/local/tomcat/webapps/$CONTEXT_PATH/.first_start_completed ]]; then - first_start - else - other_starts - fi - shift - set -- catalina.sh run "$@" -fi - -# Else default to run whatever the user wanted like "bash" -exec "$@" diff --git a/14.4/mysql-tomcat/xwiki/hibernate.cfg.xml b/14.4/mysql-tomcat/xwiki/hibernate.cfg.xml deleted file mode 100644 index 27f0836293c3a2d3504a651fb0d23d69a4431eff..0000000000000000000000000000000000000000 --- a/14.4/mysql-tomcat/xwiki/hibernate.cfg.xml +++ /dev/null @@ -1,103 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - * See the NOTICE file distributed with this work for additional - * information regarding copyright ownership. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. ---> - -<!DOCTYPE hibernate-configuration PUBLIC - "-//Hibernate/Hibernate Configuration DTD//EN" - "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> -<hibernate-configuration> - <session-factory> - - <!-- Please refer to the installation guide on - https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/ for configuring your - database. You'll need to do 2 things: - 1) Copy your database driver JAR in WEB-INF/lib or in some shared lib directory - 2) Uncomment the properties below for your specific DB (and comment the default - database configuration if it doesn't match your DB) - --> - - <!-- Generic parameters common to all Databases --> - - <property name="show_sql">false</property> - <property name="use_outer_join">true</property> - - <!-- Without it, some queries fail in MS SQL. XWiki doesn't need scrollable result sets, anyway. --> - <property name="jdbc.use_scrollable_resultset">false</property> - - <!-- DBCP Connection Pooling configuration. Only some properties are shown. All available properties can be found - at https://commons.apache.org/proper/commons-dbcp/configuration.html - --> - <property name="dbcp.defaultAutoCommit">false</property> - <property name="dbcp.maxTotal">50</property> - <property name="dbcp.maxIdle">5</property> - <property name="dbcp.maxWaitMillis">30000</property> - <property name="connection.provider_class">com.xpn.xwiki.store.DBCPConnectionProvider</property> - - <!-- Setting "dbcp.poolPreparedStatements" to true and "dbcp.maxOpenPreparedStatements" will tell DBCP to cache - Prepared Statements (it's off by default). Note that for backward compatibility the "dbcp.ps.maxActive" is also - supported and when set it'll set "dbcp.poolPreparedStatements" to true and "dbcp.maxOpenPreparedStatements" to - value of "dbcp.ps.maxActive". - - Note 1: When using HSQLDB for example, it's important to NOT cache prepared statements because HSQLDB - Prepared Statements (PS) contain the schema on which they were initially created and thus when switching - schema if the same PS is reused it'll execute on the wrong schema! Since HSQLDB does internally cache - prepared statement there's no performance loss by not caching Prepared Statements at the DBCP level. - See https://jira.xwiki.org/browse/XWIKI-1740. - Thus we recommend not turning on this configuration for HSQLDB unless you know what you're doing :) - - Note 2: The same applies to PostGreSQL. - --> - - <!-- BoneCP Connection Pooling configuration. - <property name="bonecp.idleMaxAgeInMinutes">240</property> - <property name="bonecp.idleConnectionTestPeriodInMinutes">60</property> - <property name="bonecp.partitionCount">3</property> - <property name="bonecp.acquireIncrement">10</property> - <property name="bonecp.maxConnectionsPerPartition">60</property> - <property name="bonecp.minConnectionsPerPartition">20</property> - <property name="bonecp.statementsCacheSize">50</property> - <property name="bonecp.releaseHelperThreads">3</property> - <property name="connection.provider_class">com.xpn.xwiki.store.DBCPConnectionProvider</property> - --> - - <!-- MySQL configuration. - Notes: - - if you want the main wiki database to be different than "xwiki" - you will also have to set the property xwiki.db in xwiki.cfg file - --> - <property name="connection.url">jdbc:mysql://replacecontainer/replacedatabase?useSSL=false</property> - <property name="connection.username">replaceuser</property> - <property name="connection.password">replacepassword</property> - <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property> - <property name="dbcp.poolPreparedStatements">true</property> - <property name="dbcp.maxOpenPreparedStatements">20</property> - - <property name="hibernate.connection.charSet">UTF-8</property> - <property name="hibernate.connection.useUnicode">true</property> - <property name="hibernate.connection.characterEncoding">utf8</property> - - <mapping resource="xwiki.hbm.xml"/> - <mapping resource="feeds.hbm.xml"/> - <mapping resource="instance.hbm.xml"/> - <mapping resource="notification-filter-preferences.hbm.xml"/> - <mapping resource="mailsender.hbm.xml"/> - </session-factory> -</hibernate-configuration> diff --git a/14.4/postgres-tomcat/.env b/14.4/postgres-tomcat/.env deleted file mode 100644 index 6f0ee98a01a3928886998bbc7bec6981502ec8e9..0000000000000000000000000000000000000000 --- a/14.4/postgres-tomcat/.env +++ /dev/null @@ -1,6 +0,0 @@ -# Default environment values -XWIKI_VERSION=14.4.8 -DB_USER=xwiki -DB_PASSWORD=xwiki -DB_DATABASE=xwiki -POSTGRES_ROOT_PASSWORD=xwiki diff --git a/14.4/postgres-tomcat/Dockerfile b/14.4/postgres-tomcat/Dockerfile deleted file mode 100644 index 835d629399e1dc41c8007fa36dfb5bd4d542311a..0000000000000000000000000000000000000000 --- a/14.4/postgres-tomcat/Dockerfile +++ /dev/null @@ -1,108 +0,0 @@ -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- -FROM tomcat:9-jre11 - -# ____ ____ ____ ____ _ __ _ -# |_ _||_ _||_ _| |_ _|(_) [ | _ (_) -# \ \ / / \ \ /\ / / __ | | / ] __ -# > `' < \ \/ \/ / [ | | '' < [ | -# _/ /'`\ \_ \ /\ / | | | |`\ \ | | -# |____||____| \/ \/ [___][__| \_][___] - -LABEL org.opencontainers.image.authors='XWiki Development Team <committers@xwiki.org>' -LABEL org.opencontainers.image.url='https://hub.docker.com/_/xwiki' -LABEL org.opencontainers.image.documentation='https://hub.docker.com/_/xwiki' -LABEL org.opencontainers.image.source='https://github.com/xwiki/xwiki-docker.git' -LABEL org.opencontainers.image.vendor='xwiki.org' -LABEL org.opencontainers.image.licenses='LGPL-2.1' - -# Note: when using docker-compose, the ENV values below are overridden from the .env file. - -# Install LibreOffice + other tools -# Note that procps is required to get ps which is used by JODConverter to start LibreOffice -RUN apt-get update && \ - apt-get --no-install-recommends -y install \ - curl \ - libreoffice \ - unzip \ - procps \ - libpostgresql-jdbc-java && \ - rm -rf /var/lib/apt/lists/* - -# Install XWiki as the ROOT webapp context in Tomcat -# Create the Tomcat temporary directory -# Configure the XWiki permanent directory -ENV XWIKI_VERSION="14.4.8" -ENV XWIKI_URL_PREFIX "https://maven.xwiki.org/releases/org/xwiki/platform/xwiki-platform-distribution-war/${XWIKI_VERSION}" -ENV XWIKI_DOWNLOAD_SHA256 79cc9b25eaa104496be9f135c706c1e6cb1730d38ebc523724d8583c2522051e -RUN rm -rf /usr/local/tomcat/webapps/* && \ - mkdir -p /usr/local/tomcat/temp && \ - mkdir -p /usr/local/xwiki/data && \ - curl -fSL "${XWIKI_URL_PREFIX}/xwiki-platform-distribution-war-${XWIKI_VERSION}.war" -o xwiki.war && \ - echo "$XWIKI_DOWNLOAD_SHA256 xwiki.war" | sha256sum -c - && \ - unzip -d /usr/local/tomcat/webapps/ROOT xwiki.war && \ - rm -f xwiki.war - -# Copy the JDBC driver in the XWiki webapp -RUN cp /usr/share/java/postgresql-jdbc4.jar /usr/local/tomcat/webapps/ROOT/WEB-INF/lib/ - -# Configure Tomcat. For example set the memory for the Tomcat JVM since the default value is too small for XWiki -COPY tomcat/setenv.sh /usr/local/tomcat/bin/ - -# Setup the XWiki Hibernate configuration -COPY xwiki/hibernate.cfg.xml /usr/local/tomcat/webapps/ROOT/WEB-INF/hibernate.cfg.xml - -# Set a specific distribution id in XWiki for this docker packaging. -RUN sed -i 's/<id>org.xwiki.platform:xwiki-platform-distribution-war/<id>org.xwiki.platform:xwiki-platform-distribution-docker/' \ - /usr/local/tomcat/webapps/ROOT/META-INF/extension.xed - -# Add scripts required to make changes to XWiki configuration files at execution time -# Note: we don't run CHMOD since 1) it's not required since the executabe bit is already set in git and 2) running -# CHMOD after a COPY will sometimes fail, depending on different host-specific factors (especially on AUFS). -COPY xwiki/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh - -# Make the XWiki directory (the permanent directory is included in it) persist on the host (so that it's not recreated -# across runs) -VOLUME /usr/local/xwiki - -# At this point the image is done and what remains below are the runtime configuration used by the user to configure -# the container that will be created out of the image. Namely the user can override some environment variables with -# docker run -e "var1=val1" -e "var2=val2" ... -# The supported environment variables that can be overridden are: -# - DB_USER: the name of the user configured for XWiki in the DB. Default is "xwiki". This is used to configure -# xwiki's hibernate.cfg.xml file. -# - DB_PASSWORD: the password for the user configured for XWiki in the DB. Default is "xwiki". This is used to -# configure xwiki's hibernate.cfg.xml file. -# - DB_DATABASE: the name of the database to use. Default is "xwiki". This is used to configure xwiki's -# hibernate.cfg.xml file. -# - DB_HOST: The name of the host (or docker container) containing the database. Default is "db". This is used to -# configure xwiki's hibernate.cfg.xml file. -# - CONTEXT_PATH: The name of the context path under which XWiki will be deployed in Tomcat. If not specified then it'll -# be deployed as ROOT. - -# Example: -# docker run -it -e "DB_USER=xwiki" -e "DB_PASSWORD=xwiki" <imagename> - -# Starts XWiki by starting Tomcat. All options passed to "docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]" -# are also passed to docker-entrypoint.sh. If "xwiki" is passed then XWiki will be configured the first time the -# container executes and Tomcat will be started. If some other parameter is passed then it'll be executed to comply -# with best practices defined at https://github.com/docker-library/official-images#consistency. -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["xwiki"] diff --git a/14.4/postgres-tomcat/docker-compose.yml b/14.4/postgres-tomcat/docker-compose.yml deleted file mode 100644 index cf5d098d0434e5a8cf184519979373ca01bdc608..0000000000000000000000000000000000000000 --- a/14.4/postgres-tomcat/docker-compose.yml +++ /dev/null @@ -1,63 +0,0 @@ -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- -version: '2' -networks: - bridge: - driver: bridge -services: - # The container that runs XWiki + Tomcat - web: - build: . - container_name: xwiki-postgres-tomcat-web - depends_on: - - db - ports: - - "8080:8080" - # Default values defined in .env file. - # The DB_USER/DB_PASSWORD/DB_DATABASE/DB_HOST variables are used in the hibernate.cfg.xml file. - environment: - - XWIKI_VERSION=${XWIKI_VERSION} - - DB_USER=${DB_USER} - - DB_PASSWORD=${DB_PASSWORD} - - DB_DATABASE=${DB_DATABASE} - - DB_HOST=xwiki-postgres-db - # Provide a name instead of an auto-generated id for xwiki data (the permanent directory in included in it) - # configured in the Dockerfile, to make it simpler to identify in 'docker volume ls'. - volumes: - - xwiki-data:/usr/local/xwiki - networks: - - bridge - # The container that runs the database (postgres) - db: - image: "postgres:13" - container_name: xwiki-postgres-db - volumes: - - postgres-data:/var/lib/postgresql/data - environment: - - POSTGRES_ROOT_PASSWORD=${POSTGRES_ROOT_PASSWORD} - - POSTGRES_PASSWORD=${DB_PASSWORD} - - POSTGRES_USER=${DB_USER} - - POSTGRES_DB=${DB_DATABASE} - - POSTGRES_INITDB_ARGS="--encoding=UTF8" - networks: - - bridge -volumes: - postgres-data: {} - xwiki-data: {} diff --git a/14.4/postgres-tomcat/tomcat/setenv.sh b/14.4/postgres-tomcat/tomcat/setenv.sh deleted file mode 100755 index 755f260ef22e6b02f80c92ae6a07d47610cec7b4..0000000000000000000000000000000000000000 --- a/14.4/postgres-tomcat/tomcat/setenv.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- - -# We're making the following changes to the default: -# * Adding more memory (default is 512MB which is not enough for XWiki) -# * By default, Tomcat does not allow the usage of encoded slash '%2F' and backslash '%5C' in URLs, as noted in -# https://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10. We want to allow for them as it's useful to -# be able to have '/' and '' in wiki page names. -# * On some system /dev/random is slow to init leading to a slow Tomcat and thus Xwiki startup. - -# Users can override these values by setting the JAVA_OPTS environment variable. For example: -# -e JAVA_OPTS="-Xmx2048m" - -XMX="-Xmx1024m" -ALLOW_ENCODED_SLASH="-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true" -ALLOW_BACKSLASH="-Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true" -SECURERANDOM="-Djava.security.egd=file:/dev/./urandom" - -if [[ ! -z "$JAVA_OPTS" ]]; then - if [[ ! $JAVA_OPTS =~ .*-Xmx[0-9]+.* ]]; then - JAVA_OPTS="$JAVA_OPTS $XMX" - fi - if [[ ! $JAVA_OPTS =~ .*ALLOW_ENCODED_SLASH.* ]]; then - JAVA_OPTS="$JAVA_OPTS $ALLOW_ENCODED_SLASH" - fi - if [[ ! $JAVA_OPTS =~ .*ALLOW_BACKSLASH.* ]]; then - JAVA_OPTS="$JAVA_OPTS $ALLOW_BACKSLASH" - fi - if [[ ! $JAVA_OPTS =~ .*java\.security\.egd.* ]]; then - JAVA_OPTS="$JAVA_OPTS $SECURERANDOM" - fi -else - JAVA_OPTS="$XMX $ALLOW_ENCODED_SLASH $ALLOW_BACKSLASH $SECURERANDOM" -fi - -export JAVA_OPTS diff --git a/14.4/postgres-tomcat/xwiki/docker-entrypoint.sh b/14.4/postgres-tomcat/xwiki/docker-entrypoint.sh deleted file mode 100755 index e8de6d1276d21d1479eae464afb7b1f246b47283..0000000000000000000000000000000000000000 --- a/14.4/postgres-tomcat/xwiki/docker-entrypoint.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/bin/bash -# --------------------------------------------------------------------------- -# See the NOTICE file distributed with this work for additional -# information regarding copyright ownership. -# -# This is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2.1 of -# the License, or (at your option) any later version. -# -# This software is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this software; if not, write to the Free -# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA, or see the FSF site: http://www.fsf.org. -# --------------------------------------------------------------------------- - -set -e - -function first_start() { - configure - touch /usr/local/tomcat/webapps/$CONTEXT_PATH/.first_start_completed -} - -function other_starts() { - mkdir -p /usr/local/xwiki/data - restoreConfigurationFile 'hibernate.cfg.xml' - restoreConfigurationFile 'xwiki.cfg' - restoreConfigurationFile 'xwiki.properties' -} - -# $1 - the path to xwiki.[cfg|properties] -# $2 - the setting/property to set -# $3 - the new value -function xwiki_replace() { - sed -i s~"\#\? \?$2 \?=.*"~"$2=$3"~g "$1" -} - -# $1 - the setting/property to set -# $2 - the new value -function xwiki_set_cfg() { - xwiki_replace /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/xwiki.cfg "$1" "$2" -} - -# $1 - the setting/property to set -# $2 - the new value -function xwiki_set_properties() { - xwiki_replace /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/xwiki.properties "$1" "$2" -} - -# usage: file_env VAR [DEFAULT] -# ie: file_env 'XYZ_DB_PASSWORD' 'example' -# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of -# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) -file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - local val="$def" - if [ "${!var:-}" ]; then - val="${!var}" - elif [ "${!fileVar:-}" ]; then - val="$(< "${!fileVar}")" - fi - export "$var"="$val" - unset "$fileVar" -} - -# Allows to use sed but with user input which can contain special sed characters such as \, / or &. -# $1 - the text to search for -# $2 - the replacement text -# $3 - the file in which to do the search/replace -function safesed { - sed -i "s/$(echo $1 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')/$(echo $2 | sed -e 's/[\/&]/\\&/g')/g" $3 -} - -# $1 - the config file name found in WEB-INF (e.g. "xwiki.cfg") -function saveConfigurationFile() { - if [ -f "/usr/local/xwiki/data/$1" ]; then - echo " Reusing existing config file $1..." - cp "/usr/local/xwiki/data/$1" "/usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/$1" - else - echo " Saving config file $1..." - cp "/usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/$1" "/usr/local/xwiki/data/$1" - fi -} - -# $1 - the config file name to restore in WEB-INF (e.g. "xwiki.cfg") -function restoreConfigurationFile() { - if [ -f "/usr/local/xwiki/data/$1" ]; then - echo " Synchronizing config file $1..." - cp "/usr/local/xwiki/data/$1" "/usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/$1" - else - echo " No config file $1 found, using default from container..." - cp "/usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/$1" "/usr/local/xwiki/data/$1" - fi -} - -function configure() { - echo 'Configuring XWiki...' - - echo 'Setting environment variables' - file_env 'DB_USER' 'xwiki' - file_env 'DB_PASSWORD' 'xwiki' - file_env 'DB_HOST' 'db' - file_env 'DB_DATABASE' 'xwiki' - file_env 'INDEX_HOST' 'localhost' - file_env 'INDEX_PORT' '8983' - - echo " Deploying XWiki in the '$CONTEXT_PATH' context" - if [ "$CONTEXT_PATH" == "ROOT" ]; then - xwiki_set_cfg 'xwiki.webapppath' '' - else - mv /usr/local/tomcat/webapps/ROOT /usr/local/tomcat/webapps/$CONTEXT_PATH - fi - - echo 'Replacing environment variables in files' - safesed "replaceuser" $DB_USER /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/hibernate.cfg.xml - safesed "replacepassword" $DB_PASSWORD /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/hibernate.cfg.xml - safesed "replacecontainer" $DB_HOST /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/hibernate.cfg.xml - safesed "replacedatabase" $DB_DATABASE /usr/local/tomcat/webapps/$CONTEXT_PATH/WEB-INF/hibernate.cfg.xml - - # Set any non-default main wiki database name in the xwiki.cfg file. - if [ "$DB_DATABASE" != "xwiki" ]; then - xwiki_set_cfg "xwiki.db" $DB_DATABASE - fi - - echo ' Generating authentication validation and encryption keys...' - xwiki_set_cfg 'xwiki.authentication.validationKey' "$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" - xwiki_set_cfg 'xwiki.authentication.encryptionKey' "$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)" - - echo ' Setting permanent directory...' - xwiki_set_properties 'environment.permanentDirectory' '/usr/local/xwiki/data' - echo ' Configure libreoffice...' - xwiki_set_properties 'openoffice.autoStart' 'true' - - if [ $INDEX_HOST != 'localhost' ]; then - echo ' Configuring remote Solr Index' - xwiki_set_properties 'solr.type' 'remote' - xwiki_set_properties 'solr.remote.url' "http://$INDEX_HOST:$INDEX_PORT/solr/xwiki" - fi - - # If the files already exist then copy them to the XWiki's WEB-INF directory. Otherwise copy the default config - # files to the permanent directory so that they can be easily modified by the user. They'll be synced at the next - # start. - mkdir -p /usr/local/xwiki/data - saveConfigurationFile 'hibernate.cfg.xml' - saveConfigurationFile 'xwiki.cfg' - saveConfigurationFile 'xwiki.properties' -} - -# This if will check if the first argument is a flag but only works if all arguments require a hyphenated flag -# -v; -SL; -f arg; etc will work, but not arg1 arg2 -if [ "${1:0:1}" = '-' ]; then - set -- xwiki "$@" -fi - -# Check for the expected command -if [ "$1" = 'xwiki' ]; then - file_env 'CONTEXT_PATH' 'ROOT' - if [[ ! -f /usr/local/tomcat/webapps/$CONTEXT_PATH/.first_start_completed ]]; then - first_start - else - other_starts - fi - shift - set -- catalina.sh run "$@" -fi - -# Else default to run whatever the user wanted like "bash" -exec "$@" diff --git a/14.4/postgres-tomcat/xwiki/hibernate.cfg.xml b/14.4/postgres-tomcat/xwiki/hibernate.cfg.xml deleted file mode 100644 index da57a105760acbaa09590c846e55e8cf4291a0b0..0000000000000000000000000000000000000000 --- a/14.4/postgres-tomcat/xwiki/hibernate.cfg.xml +++ /dev/null @@ -1,107 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - * See the NOTICE file distributed with this work for additional - * information regarding copyright ownership. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. ---> - -<!DOCTYPE hibernate-configuration PUBLIC - "-//Hibernate/Hibernate Configuration DTD//EN" - "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> -<hibernate-configuration> - <session-factory> - - <!-- Please refer to the installation guide on - https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/ for configuring your - database. You'll need to do 2 things: - 1) Copy your database driver JAR in WEB-INF/lib or in some shared lib directory - 2) Uncomment the properties below for your specific DB (and comment the default - database configuration if it doesn't match your DB) - --> - - <!-- Generic parameters common to all Databases --> - - <property name="show_sql">false</property> - <property name="use_outer_join">true</property> - - <!-- Without it, some queries fail in MS SQL. XWiki doesn't need scrollable result sets, anyway. --> - <property name="jdbc.use_scrollable_resultset">false</property> - - <!-- DBCP Connection Pooling configuration. Only some properties are shown. All available properties can be found - at https://commons.apache.org/proper/commons-dbcp/configuration.html - --> - <property name="dbcp.defaultAutoCommit">false</property> - <property name="dbcp.maxTotal">50</property> - <property name="dbcp.maxIdle">5</property> - <property name="dbcp.maxWaitMillis">30000</property> - <property name="connection.provider_class">com.xpn.xwiki.store.DBCPConnectionProvider</property> - - <!-- Setting "dbcp.poolPreparedStatements" to true and "dbcp.maxOpenPreparedStatements" will tell DBCP to cache - Prepared Statements (it's off by default). Note that for backward compatibility the "dbcp.ps.maxActive" is also - supported and when set it'll set "dbcp.poolPreparedStatements" to true and "dbcp.maxOpenPreparedStatements" to - value of "dbcp.ps.maxActive". - - Note 1: When using HSQLDB for example, it's important to NOT cache prepared statements because HSQLDB - Prepared Statements (PS) contain the schema on which they were initially created and thus when switching - schema if the same PS is reused it'll execute on the wrong schema! Since HSQLDB does internally cache - prepared statement there's no performance loss by not caching Prepared Statements at the DBCP level. - See https://jira.xwiki.org/browse/XWIKI-1740. - Thus we recommend not turning on this configuration for HSQLDB unless you know what you're doing :) - - Note 2: The same applies to PostGreSQL. - --> - - <!-- BoneCP Connection Pooling configuration. - <property name="bonecp.idleMaxAgeInMinutes">240</property> - <property name="bonecp.idleConnectionTestPeriodInMinutes">60</property> - <property name="bonecp.partitionCount">3</property> - <property name="bonecp.acquireIncrement">10</property> - <property name="bonecp.maxConnectionsPerPartition">60</property> - <property name="bonecp.minConnectionsPerPartition">20</property> - <property name="bonecp.statementsCacheSize">50</property> - <property name="bonecp.releaseHelperThreads">3</property> - <property name="connection.provider_class">com.xpn.xwiki.store.DBCPConnectionProvider</property> - --> - - <!-- PostgreSQL configuration. - Notes: - - "jdbc.use_streams_for_binary" needs to be set to "false", - see https://community.jboss.org/wiki/HibernateCoreMigrationGuide36 - - "xwiki.virtual_mode" can be set to either "schema" or "database". Note that currently the database mode - doesn't support database creation (see https://jira.xwiki.org/browse/XWIKI-8753) - - if you want the main wiki database to be different than "xwiki" (or "public" in schema mode) - you will also have to set the property xwiki.db in xwiki.cfg file - --> - <property name="connection.url">jdbc:postgresql://replacecontainer:5432/replacedatabase</property> - <property name="connection.username">replaceuser</property> - <property name="connection.password">replacepassword</property> - <property name="connection.driver_class">org.postgresql.Driver</property> - <property name="jdbc.use_streams_for_binary">false</property> - <property name="xwiki.virtual_mode">schema</property> - - <property name="hibernate.connection.charSet">UTF-8</property> - <property name="hibernate.connection.useUnicode">true</property> - <property name="hibernate.connection.characterEncoding">utf8</property> - - <mapping resource="xwiki.postgresql.hbm.xml"/> - <mapping resource="feeds.hbm.xml"/> - <mapping resource="instance.hbm.xml"/> - <mapping resource="notification-filter-preferences.hbm.xml"/> - <mapping resource="mailsender.hbm.xml"/> - </session-factory> -</hibernate-configuration> diff --git a/build.gradle b/build.gradle index 97d898136f52a54adb3d1675bf9ec66208b600d9..f1c9eec06831d257355bd86a563816ce70526194 100644 --- a/build.gradle +++ b/build.gradle @@ -58,14 +58,6 @@ def tokens = [ mysqlJDBCSha256: '522329fe925980f02e5eb89b59d227245d345415ff0c08932a68c9765c13acc5', mariadbJDBCVersion: '3.1.3', mariadbJDBCSha256: '11297ee6562426c49c81387c860153cbc131c4c3d042492d4f6d2d97ab3a1ca5' - ], - '14.4': [ - xwikiVersion: '14.4.8', - xwikiSha256: '79cc9b25eaa104496be9f135c706c1e6cb1730d38ebc523724d8583c2522051e', - mysqlJDBCVersion: '8.0.32', - mysqlJDBCSha256: '522329fe925980f02e5eb89b59d227245d345415ff0c08932a68c9765c13acc5', - mariadbJDBCVersion: '3.1.3', - mariadbJDBCSha256: '11297ee6562426c49c81387c860153cbc131c4c3d042492d4f6d2d97ab3a1ca5' ] ]