From 3c7111135ea144b067dfe31bac9e7d5157a2e236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=89=91=E9=91=AB?= <1064730540@qq.com> Date: Sun, 21 May 2023 15:11:56 +0800 Subject: [PATCH] feat: Remove the threadpool directory under docker --- .gitignore | 4 ++-- docker/Dockerfile | 41 ++++++++++++++++++++++++++++++++++++ docker/docker-startup.sh | 45 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 docker/Dockerfile create mode 100644 docker/docker-startup.sh diff --git a/.gitignore b/.gitignore index b43da0e6..86147440 100644 --- a/.gitignore +++ b/.gitignore @@ -49,5 +49,5 @@ docs/.docusaurus ### Docker ### -docker/threadpool/conf -docker/threadpool/target \ No newline at end of file +docker/conf +docker/target \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..bb14f76c --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,41 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM openjdk:8-jre-slim +MAINTAINER lijianxin + +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}/conf/hippo4j-logback.xml +ADD conf/application.properties ${BASE_DIR}/conf/application.properties +ADD conf/application-h2.properties ${BASE_DIR}/conf/application-h2.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 ["./docker-startup.sh"] + \ No newline at end of file diff --git a/docker/docker-startup.sh b/docker/docker-startup.sh new file mode 100644 index 00000000..ccbda789 --- /dev/null +++ b/docker/docker-startup.sh @@ -0,0 +1,45 @@ +#!/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.profiles.active=mysql --hippo4j.database.init_enable=false " + 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 starting,you can check the ${BASE_DIR}/logs/"