mirror of
https://github.com/Febbweiss/docker-xwiki-jetty.git
synced 2026-03-04 22:35:35 +00:00
Feature: database choice between HSQLDB, Oracle, MySQL and PostgreSQL as environment variable
This commit is contained in:
11
Dockerfile
11
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/*
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
BIN
binaries/ojdbc7.jar
Normal file
BIN
binaries/ojdbc7.jar
Normal file
Binary file not shown.
@@ -14,11 +14,12 @@
|
||||
<property name="connection.provider_class">com.xpn.xwiki.store.DBCPConnectionProvider</property>
|
||||
|
||||
|
||||
<property name="connection.url">jdbc:mysql://MYSQL_HOST/xwiki</property>
|
||||
<property name="connection.username">MYSQL_USER</property>
|
||||
<property name="connection.password">MYSQL_PASSWORD</property>
|
||||
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
|
||||
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
|
||||
<property name="connection.url">DB_HOST</property>
|
||||
<property name="connection.username">DB_USER</property>
|
||||
<property name="connection.password">DB_PASSWORD</property>
|
||||
<property name="connection.driver_class">DB_DRIVER_CLASS</property>
|
||||
<property name="dialect">DB_DIALECT</property>
|
||||
DB_OPTIONAL
|
||||
<property name="dbcp.poolPreparedStatements">true</property>
|
||||
<property name="dbcp.maxOpenPreparedStatements">20</property>
|
||||
<mapping resource="xwiki.hbm.xml"/>
|
||||
@@ -28,4 +29,3 @@
|
||||
<mapping resource="mailsender.hbm.xml"/>
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
||||
|
||||
|
||||
40
start.sh
40
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='<property name="hibernate.connection.SetBigStringTryClob">true</property><property name="hibernate.jdbc.batch_size">0</property>'
|
||||
;;
|
||||
'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
|
||||
|
||||
Reference in New Issue
Block a user