From ea63c5f7e6d4ce68866e42f50fd54764e563a3b6 Mon Sep 17 00:00:00 2001 From: fecaille Date: Tue, 5 Apr 2016 13:32:18 +0200 Subject: [PATCH] Optimization : * using alpine linux as base * xwiki version as building arguments instead of hardcoded * add libreoffice and its xwiki configuration to import Office documents * set environment.permanentDirectory Fix: * SMTP environment variables set as empty string --- Dockerfile | 40 +++++++++++++++++++++++++++++----------- start.sh | 19 ++++++++++++++----- 2 files changed, 43 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index b4cfa20..56398d1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,38 @@ -FROM jetty:9.3.7-jre8 +FROM frolvlad/alpine-oraclejdk8 + +ARG XWIKI_VERSION=8.0 +ARG JETTY_MAJOR=stable-9 +ARG JETTY_VERSION=9.3.8.v20160314 +ENV JETTY_BASE /usr/local/jetty ENV MYSQL_USER xwiki ENV MYSQL_PASSWORD dbpass ENV MYSQL_HOST db ENV WIKI_CONTEXT xwiki -ENV ADMIN_EMAIL xwiki@host.com -ENV SMTP_HOST mail.host.com -ENV SMTP_PROTOCOL tls -ENV SMTP_LOGIN xwiki -ENV SMTP_PASSWORD xwiki +ENV ADMIN_EMAIL '' +ENV SMTP_HOST '' +ENV SMTP_PROTOCOL '' +ENV SMTP_LOGIN '' +ENV SMTP_PASSWORD '' -RUN curl http://download.forge.ow2.org/xwiki/xwiki-enterprise-web-8.0-milestone-2.war --output ${JETTY_BASE}/xwiki8.war -RUN curl http://download.forge.ow2.org/xwiki/xwiki-enterprise-ui-mainwiki-all-8.0-milestone-2.xar --output ${JETTY_BASE}/xwiki8.xar -RUN mkdir -p ${JETTY_BASE}/webapps/ROOT/ -RUN unzip ${JETTY_BASE}/xwiki8.war -d ${JETTY_BASE}/webapps/ROOT/ -RUN curl http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar --output ${JETTY_BASE}/webapps/ROOT/WEB-INF/lib/mysql-connector-java-5.jar +RUN apk update && \ + apk add --no-cache libreoffice curl && \ + cd /usr/local && \ + curl -sSL "http://eclipse.org/downloads/download.php?file=/jetty/${JETTY_MAJOR}/dist/jetty-distribution-${JETTY_VERSION}.tar.gz&r=1" -o jetty.tar.gz && \ + tar -xzf jetty.tar.gz && \ + ln -s jetty-distribution-${JETTY_VERSION} jetty && \ + rm jetty.tar.gz + + +RUN curl -sL http://download.forge.ow2.org/xwiki/xwiki-enterprise-web-${XWIKI_VERSION}.war --output ${JETTY_BASE}/xwiki${XWIKI_VERSION}.war && \ + curl -sL http://download.forge.ow2.org/xwiki/xwiki-enterprise-ui-mainwiki-all-${XWIKI_VERSION}.xar --output ${JETTY_BASE}/xwiki${XWIKI_VERSION}.xar && \ + mkdir -p ${JETTY_BASE}/webapps/ROOT/ && \ + unzip -q ${JETTY_BASE}/xwiki${XWIKI_VERSION}.war -d ${JETTY_BASE}/webapps/ROOT/ && \ + rm ${JETTY_BASE}/xwiki${XWIKI_VERSION}.war && \ + curl -sL http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar --output ${JETTY_BASE}/webapps/ROOT/WEB-INF/lib/mysql-connector-java-5.jar + + +RUN rm -rf /tmp/* /var/tmp/* /var/cache/apk/* /usr/share/doc/* ADD ./start.sh /usr/local/bin/start.sh ADD ./config/hibernate.cfg.xml ${JETTY_BASE}/webapps/ROOT/WEB-INF/ diff --git a/start.sh b/start.sh index 0bf1445..799ad2a 100755 --- a/start.sh +++ b/start.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/bin/sh -if [ "$WIKI_CONTEXT" != "" ];then +if [ "$WIKI_CONTEXT" != "" ];then if [ ! -f "${JETTY_BASE}/webapps/${WIKI_CONTEXT}" ];then mv ${JETTY_BASE}/webapps/ROOT ${JETTY_BASE}/webapps/${WIKI_CONTEXT} #curl http://download.forge.ow2.org/xwiki/xwiki-enterprise-web-8.0-milestone-2.war --output webapps/xwiki8.war @@ -8,7 +8,7 @@ if [ "$WIKI_CONTEXT" != "" ];then sed -i "s|MYSQL_USER|${MYSQL_USER}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/hibernate.cfg.xml sed -i "s|MYSQL_PASSWORD|${MYSQL_PASSWORD}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/hibernate.cfg.xml if [[ "${SMTP_HOST}" != "" ]]; then - sed -i "s|.*mail\.sender\.host = .*|mail.sender.host = ${SMTP_HOST}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties + sed -i "s|.*mail\.sender\.host = .*|mail.sender.host = ${SMTP_HOST}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties fi if [[ "${SMTP_LOGIN}" != "" ]]; then sed -i "s|.*mail\.sender\.username = .*|mail.sender.username = ${SMTP_LOGIN}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties @@ -27,8 +27,17 @@ if [ "$WIKI_CONTEXT" != "" ];then else sed -i "s|.*mail\.sender\.port = .*|mail.sender.port = 25|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties fi + + set XWIKI_OPTS=%XWIKI_OPTS% -Doffice.path=/usr/lib/libreoffice/ + + sed -i "s|.*openoffice.serverType=0|openoffice.serverType=0|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties + sed -i "s|.*openoffice.autoStart=false|openoffice.autoStart=true|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties + sed -i "s|.*openoffice.homePath=/opt/openoffice.org3/|openoffice.homePath=/usr/lib/libreoffice/|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties + sed -i "s|.*openoffice.taskExecutionTimeout=30000|openoffice.taskExecutionTimeout=120000|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties + + sed -i "s|.*environment.permanentDirectory=/var/local/xwiki/|environment.permanentDirectory=/var/local/xwiki/|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties fi fi -java -jar "$JETTY_HOME/start.jar" - +cd ${JETTY_BASE} +java -jar start.jar