diff --git a/Dockerfile b/Dockerfile
index 56398d1..9ddc3cf 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,9 +5,11 @@ 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 DB_TYPE hsqldb
+ENV DB_USER sa
+ENV DB_PASSWORD ''
+ENV DB_HOST db
+
ENV WIKI_CONTEXT xwiki
ENV ADMIN_EMAIL ''
ENV SMTP_HOST ''
@@ -29,8 +31,11 @@ RUN curl -sL http://download.forge.ow2.org/xwiki/xwiki-enterprise-web-${XWIKI_VE
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://central.maven.org/maven2/org/hsqldb/hsqldb/2.3.3/hsqldb-2.3.3.jar --output ${JETTY_BASE}/webapps/ROOT/WEB-INF/lib/hsqldb-2.3.3.jar && \
+ curl -sL http://central.maven.org/maven2/org/postgresql/postgresql/9.4.1208/postgresql-9.4.1208.jar --output ${JETTY_BASE}/webapps/ROOT/WEB-INF/lib/postgresql-9.4.jar && \
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
+ADD binaries/ojdbc7.jar ${JETTY_BASE}/webapps/ROOT/WEB-INF/lib/ojdbc7.jar
RUN rm -rf /tmp/* /var/tmp/* /var/cache/apk/* /usr/share/doc/*
diff --git a/README.md b/README.md
index 8d986f5..3d0508e 100644
--- a/README.md
+++ b/README.md
@@ -3,9 +3,10 @@
Create a xwiki instance with jetty webserver
Use the following ENV when running :
-- MYSQL_USER : the mysql user
-- MYSQL_PASSWORD : the mysql password
-- MYSQL_HOST : the hostname of the linked database container
+- DB_TYPE : the type of database. Supported databases : HSQLDB / Oracle / MySQL / PostgreSQL. HSQLDB is stored in the folder defined by the XWiki environment.permanentDirectory variable.
+- DB_USER : the database user (not needed for HSQLDB)
+- DB_PASSWORD : the database password (not needed for HSQLDB)
+- DB_HOST : the hostname of the linked database container (not needed for hsqldb)
- WIKI_CONTEXT : the context of the website (ROOT for no context)
- ADMIN_EMAIL : the email of the administrator
- SMTP_HOST : smtp host to send email from
diff --git a/binaries/ojdbc7.jar b/binaries/ojdbc7.jar
new file mode 100644
index 0000000..fd38a6c
Binary files /dev/null and b/binaries/ojdbc7.jar differ
diff --git a/config/hibernate.cfg.xml b/config/hibernate.cfg.xml
index dd615fa..688369c 100644
--- a/config/hibernate.cfg.xml
+++ b/config/hibernate.cfg.xml
@@ -14,11 +14,12 @@
com.xpn.xwiki.store.DBCPConnectionProvider
- jdbc:mysql://MYSQL_HOST/xwiki
- MYSQL_USER
- MYSQL_PASSWORD
- com.mysql.jdbc.Driver
- org.hibernate.dialect.MySQL5InnoDBDialect
+ DB_HOST
+ DB_USER
+ DB_PASSWORD
+ DB_DRIVER_CLASS
+ DB_DIALECT
+ DB_OPTIONAL
true
20
@@ -28,4 +29,3 @@
-
diff --git a/start.sh b/start.sh
index 799ad2a..997e510 100755
--- a/start.sh
+++ b/start.sh
@@ -3,10 +3,42 @@
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
- sed -i "s|MYSQL_HOST|${MYSQL_HOST}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/hibernate.cfg.xml
- 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
+
+ DB_OPTIONAL=''
+ DB_DRIVER_CLASS=''
+ DB_DIALECT=''
+
+ case ${DB_TYPE} in
+ 'hsqldb')
+ DB_DIALECT='org.hibernate.dialect.HSQLDialect'
+ DB_DRIVER_CLASS='org.hsqldb.jdbcDriver'
+ DB_HOST='jdbc:hsqldb:file:${environment.permanentDirectory}/database/xwiki;shutdown=true'
+ ;;
+ 'mysql')
+ DB_DIALECT='org.hibernate.dialect.MySQLDialect'
+ DB_DRIVER_CLASS='com.mysql.jdbc.Driver'
+ DB_HOST="jdbc:mysql://${DB_HOST}/xwiki?useServerPrepStmts=false\&sessionVariables=sql_mode=''"
+ ;;
+ 'oracle')
+ DB_DIALECT='org.hibernate.dialect.Oracle10gDialect'
+ DB_DRIVER_CLASS='oracle.jdbc.driver.OracleDriver'
+ DB_HOST="jdbc:oracle:thin:${DB_HOST}:1521:xwiki"
+ DB_OPTIONAL='true0'
+ ;;
+ 'postgresql')
+ DB_DIALECT='org.hibernate.dialect.PostgreSQLDialect'
+ DB_DRIVER_CLASS='org.postgresql.Driver'
+ DB_HOST="jdbc:postgresql://${DB_HOST}/xwiki"
+ ;;
+ esac
+
+ sed -i "s|DB_HOST|${DB_HOST}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/hibernate.cfg.xml
+ sed -i "s|DB_USER|${DB_USER}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/hibernate.cfg.xml
+ sed -i "s|DB_PASSWORD|${DB_PASSWORD}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/hibernate.cfg.xml
+ sed -i "s|DB_DRIVER_CLASS|${DB_DRIVER_CLASS}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/hibernate.cfg.xml
+ sed -i "s|DB_DIALECT|${DB_DIALECT}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/hibernate.cfg.xml
+ sed -i "s|DB_OPTIONAL|${DB_OPTIONAL}|" ${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
fi