Changes for page XWiki (Helm)
Last modified by Itzhak Daniel on 2024/04/29 16:35
From version 9.1
edited by Itzhak Daniel
on 2024/04/28 21:16
on 2024/04/28 21:16
Change comment:
There is no comment for this version
To version 10.1
edited by Itzhak Daniel
on 2024/04/28 21:18
on 2024/04/28 21:18
Change comment:
Uploaded new attachment "Dockerfile", version 1.1
Summary
-
Attachments (0 modified, 1 added, 0 removed)
Details
- Dockerfile
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.itzhak - Size
-
... ... @@ -1,0 +1,1 @@ 1 +6.6 KB - Content
-
... ... @@ -1,0 +1,122 @@ 1 +# --------------------------------------------------------------------------- 2 +# See the NOTICE file distributed with this work for additional 3 +# information regarding copyright ownership. 4 +# 5 +# This is free software; you can redistribute it and/or modify it 6 +# under the terms of the GNU Lesser General Public License as 7 +# published by the Free Software Foundation; either version 2.1 of 8 +# the License, or (at your option) any later version. 9 +# 10 +# This software is distributed in the hope that it will be useful, 11 +# but WITHOUT ANY WARRANTY; without even the implied warranty of 12 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 +# Lesser General Public License for more details. 14 +# 15 +# You should have received a copy of the GNU Lesser General Public 16 +# License along with this software; if not, write to the Free 17 +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 18 +# 02110-1301 USA, or see the FSF site: http://www.fsf.org. 19 +# --------------------------------------------------------------------------- 20 +FROM tomcat:9-jre17 21 + 22 +# ____ ____ ____ ____ _ __ _ 23 +# |_ _||_ _||_ _| |_ _|(_) [ | _ (_) 24 +# \ \ / / \ \ /\ / / __ | | / ] __ 25 +# > `' < \ \/ \/ / [ | | '' < [ | 26 +# _/ /'`\ \_ \ /\ / | | | |`\ \ | | 27 +# |____||____| \/ \/ [___][__| \_][___] 28 + 29 +LABEL org.opencontainers.image.authors='XWiki Development Team <committers@xwiki.org>' 30 +LABEL org.opencontainers.image.url='https://hub.docker.com/_/xwiki' 31 +LABEL org.opencontainers.image.documentation='https://hub.docker.com/_/xwiki' 32 +LABEL org.opencontainers.image.source='https://github.com/xwiki/xwiki-docker.git' 33 +LABEL org.opencontainers.image.vendor='xwiki.org' 34 +LABEL org.opencontainers.image.licenses='LGPL-2.1' 35 + 36 +# Note: when using docker-compose, the ENV values below are overridden from the .env file. 37 + 38 +# Install LibreOffice + other tools 39 +# Note that procps is required to get ps which is used by JODConverter to start LibreOffice 40 +RUN apt-get update && \ 41 + apt-get --no-install-recommends -y install \ 42 + curl \ 43 + libreoffice \ 44 + unzip \ 45 + procps && \ 46 + rm -rf /var/lib/apt/lists/* 47 + 48 +# Install XWiki as the ROOT webapp context in Tomcat 49 +# Create the Tomcat temporary directory 50 +# Configure the XWiki permanent directory 51 +ENV XWIKI_VERSION="16.2.0" 52 +ENV XWIKI_URL_PREFIX "https://maven.xwiki.org/releases/org/xwiki/platform/xwiki-platform-distribution-war/${XWIKI_VERSION}" 53 +ENV XWIKI_DOWNLOAD_SHA256 7d355ae1c88691b19af9658e3f042083d57c08d5e52e1ade25536536ad72fb3f 54 +RUN rm -rf /usr/local/tomcat/webapps/* && \ 55 + mkdir -p /usr/local/tomcat/temp && \ 56 + mkdir -p /usr/local/xwiki/data && \ 57 + curl -fSL "${XWIKI_URL_PREFIX}/xwiki-platform-distribution-war-${XWIKI_VERSION}.war" -o xwiki.war && \ 58 + echo "$XWIKI_DOWNLOAD_SHA256 xwiki.war" | sha256sum -c - && \ 59 + unzip -d /usr/local/tomcat/webapps/ROOT xwiki.war && \ 60 + rm -f xwiki.war 61 + 62 +# Copy the JDBC driver in the XWiki webapp 63 +# We take the database driver version from the Maven Central repository since we want to control the version 64 +# used and have it being consistent with what is tested in the CI. 65 +ENV MYSQL_JDBC_VERSION="8.3.0" 66 +ENV MYSQL_JDBC_SHA256="94e7fa815370cdcefed915db7f53f88445fac110f8c3818392b992ec9ee6d295" 67 +ENV MYSQL_JDBC_PREFIX="https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/${MYSQL_JDBC_VERSION}" 68 +ENV MYSQL_JDBC_ARTIFACT="mysql-connector-j-${MYSQL_JDBC_VERSION}.jar" 69 +ENV MYSQL_JDBC_TARGET="/usr/local/tomcat/webapps/ROOT/WEB-INF/lib/${MYSQL_JDBC_ARTIFACT}" 70 +RUN curl -fSL "${MYSQL_JDBC_PREFIX}/${MYSQL_JDBC_ARTIFACT}" -o $MYSQL_JDBC_TARGET && \ 71 + echo "$MYSQL_JDBC_SHA256 $MYSQL_JDBC_TARGET" | sha256sum -c - 72 + 73 +# Configure Tomcat. For example set the memory for the Tomcat JVM since the default value is too small for XWiki 74 +COPY tomcat/setenv.sh /usr/local/tomcat/bin/ 75 + 76 +# Setup the XWiki Hibernate configuration 77 +COPY xwiki/hibernate.cfg.xml /usr/local/tomcat/webapps/ROOT/WEB-INF/hibernate.cfg.xml 78 + 79 +# Set a specific distribution id in XWiki for this docker packaging. 80 +RUN sed -i 's/<id>org.xwiki.platform:xwiki-platform-distribution-war/<id>org.xwiki.platform:xwiki-platform-distribution-docker/' \ 81 + /usr/local/tomcat/webapps/ROOT/META-INF/extension.xed 82 + 83 +# Add scripts required to make changes to XWiki configuration files at execution time 84 +# Note: we don't run CHMOD since 1) it's not required since the executabe bit is already set in git and 2) running 85 +# CHMOD after a COPY will sometimes fail, depending on different host-specific factors (especially on AUFS). 86 +COPY xwiki/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh 87 + 88 +# Make the XWiki directory (the permanent directory is included in it) persist on the host (so that it's not recreated 89 +# across runs) 90 +VOLUME /usr/local/xwiki 91 + 92 +# Added by Behemoth LTD - Apr 28th, 2024 93 +# Fixing permissions error when using non-root user/group (30001:30001) to start the app 94 +RUN chown -R 30001:30001 /usr/local/tomcat/webapps 95 +USER 30001:30001 96 + 97 +# At this point the image is done and what remains below are the runtime configuration used by the user to configure 98 +# the container that will be created out of the image. Namely the user can override some environment variables with 99 +# docker run -e "var1=val1" -e "var2=val2" ... 100 +# The supported environment variables that can be overridden are: 101 +# - DB_USER: the name of the user configured for XWiki in the DB. Default is "xwiki". This is used to configure 102 +# xwiki's hibernate.cfg.xml file. 103 +# - DB_PASSWORD: the password for the user configured for XWiki in the DB. Default is "xwiki". This is used to 104 +# configure xwiki's hibernate.cfg.xml file. 105 +# - DB_DATABASE: the name of the database to use. Default is "xwiki". This is used to configure xwiki's 106 +# hibernate.cfg.xml file. 107 +# - DB_HOST: The name of the host (or docker container) containing the database. Default is "db". This is used to 108 +# configure xwiki's hibernate.cfg.xml file. 109 +# - CONTEXT_PATH: The name of the context path under which XWiki will be deployed in Tomcat. If not specified then it'll 110 +# be deployed as ROOT. 111 +# - JDBC_PARAMS: Replaces the default JDBC parameters with the passed ones. 112 + 113 +# Example: 114 +# docker run -it -e "DB_USER=xwiki" -e "DB_PASSWORD=xwiki" <imagename> 115 + 116 +# Starts XWiki by starting Tomcat. All options passed to "docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]" 117 +# are also passed to docker-entrypoint.sh. If "xwiki" is passed then XWiki will be configured the first time the 118 +# container executes and Tomcat will be started. If some other parameter is passed then it'll be executed to comply 119 +# with best practices defined at https://github.com/docker-library/official-images#consistency. 120 +ENTRYPOINT ["docker-entrypoint.sh"] 121 +CMD ["xwiki"] 122 +