docker support mysql and h2 (#746)

pull/747/head
BigXin0109 2 years ago committed by GitHub
parent c0f0cbd14a
commit 120c0fa4c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -12,7 +12,22 @@ Docker 镜像默认使用内置 H2 数据库,数据持久化到 Docker 容器
docker run -d -p 6691:6691 --name hippo4j-server hippo4j/hippo4j-server
```
访问 Server 控制台,路径 `http://localhost:6691/index.html`默认用户名密码admin / 123456
使用mysql
```shell
/**
* 暂时只暴露以下参数
* DATASOURCE_HOST、DATASOURCE_PORT、DATASOURCE_DB、DATASOURCE_USERNAME、DATASOURCE_PASSWORD
*/
docker run -d -p 6691:6691 --name hippo4j-server \
-e DATASOURCE_HOST=127.0.0.1 \
-e DATASOURCE_PORT=3306 \
-e DATASOURCE_DB=hippo4j_manager \
-e DATASOURCE_USERNAME=root \
-e DATASOURCE_PASSWORD=root \
hippo4j/hippo4j-server
```
访问 Server 控制台,路径 `http://localhost:6691/index.html` 默认用户名密码admin / 123456
## 镜像构建

@ -17,33 +17,24 @@
FROM openjdk:8-jre-slim
MAINTAINER lijianxin
ENV MYSQL_HOST="127.0.0.1" \
MYSQL_PORT="3306" \
MYSQL_DB="hippo4j_manager" \
MYSQL_USERNAME="root" \
MYSQL_PASSWORD="root" \
ENV DATASOURCE_MODE="h2" \
DATASOURCE_HOST="127.0.0.1" \
DATASOURCE_PORT="3306" \
DATASOURCE_DB="hippo4j_manager" \
DATASOURCE_USERNAME="root" \
DATASOURCE_PASSWORD="root" \
BASE_DIR="/opt/hippo4j"
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ADD conf/hippo4j-logback.xml ${BASE_DIR}/logback.xml
ADD conf/hippo4j-logback.xml ${BASE_DIR}/conf/hippo4j-logback.xml
ADD conf/application.properties ${BASE_DIR}/conf/application.properties
ADD target/hippo4j-server.jar ${BASE_DIR}/hippo4j-server.jar
ADD docker-startup.sh ${BASE_DIR}/docker-startup.sh
WORKDIR ${BASE_DIR}
RUN chmod +x docker-startup.sh
ENTRYPOINT ["sh","-c","java -jar \
-Xloggc:${BASE_DIR}/hippo4j_gc.log -verbose:gc -XX:+PrintGCDetails \
-XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M \
-XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/java_heapdump.hprof \
-Xms1024m -Xmx1024m -Xmn512m \
-Dhippo4j.standalone=true -Dhippo4j.home=${BASE_DIR} \
hippo4j-server.jar \
--server.max-http-header-size=524288 \
--server.tomcat.basedir=${BASE_DIR}/tomcat \
--logging.config=${BASE_DIR}/logback.xml \
--spring.profiles.active=h2 \
--spring.datasource.url=jdbc:h2:file:${BASE_DIR}/h2_hippo4j;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL \
"]
ENTRYPOINT ["./docker-startup.sh"]

@ -47,6 +47,7 @@
</logger>
<root level="${logLevel}">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE-ALL"/>
<appender-ref ref="FILE-ERROR"/>
</root>

@ -0,0 +1,44 @@
#!/bin/bash
export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export SERVER="hippo4j-server"
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext"
JAVA_OPT="${JAVA_OPT} -Xloggc:${BASE_DIR}/logs/hippo4j_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
JAVA_OPT="${JAVA_OPT} -Xms1024m -Xmx1024m -Xmn512m"
JAVA_OPT="${JAVA_OPT} -Dhippo4j.standalone=true"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
JAVA_OPT="${JAVA_OPT} -Dhippo4j.home=${BASE_DIR}"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} --logging.config=${BASE_DIR}/conf/hippo4j-logback.xml"
JAVA_OPT="${JAVA_OPT} --server.max-http-header-size=524288"
JAVA_OPT="${JAVA_OPT} --server.tomcat.basedir=${BASE_DIR}/bin"
if [[ "${DATASOURCE_MODE}" == "mysql" ]]; then
JAVA_OPT="${JAVA_OPT} --spring.datasource.url=\"jdbc:mysql://${DATASOURCE_HOST}:${DATASOURCE_PORT}/${DATASOURCE_DB}?characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8\" "
JAVA_OPT="${JAVA_OPT} ---spring.datasource.username=${DATASOURCE_USERNAME} --spring.datasource.password=${DATASOURCE_PASSWORD} "
elif [[ "${DATASOURCE_MODE}" == "h2" ]]; then
JAVA_OPT="${JAVA_OPT} --spring.profiles.active=h2 --spring.datasource.url=jdbc:h2:file:${BASE_DIR}/h2_hippo4j;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL"
else
echo "hippo4j DATASOURCE_MODE is error, value ${DATASOURCE_MODE}, use default h2"
fi
if [ ! -d "${BASE_DIR}/logs" ]; then
mkdir ${BASE_DIR}/logs
fi
echo "$JAVA ${JAVA_OPT}"
echo "hippo4j is starting with standalone"
if [ ! -f "${BASE_DIR}/logs/start.out" ]; then
touch "${BASE_DIR}/logs/start.out"
fi
echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
java -jar hippo4j-server.jar ${JAVA_OPT}
echo "hippo4j is startingyou can check the ${BASE_DIR}/logs/"
Loading…
Cancel
Save