From 7a97d74d339f0a9878c09faab79e0584a41de90a Mon Sep 17 00:00:00 2001 From: Hai Liang Wang Date: Thu, 7 Mar 2019 13:19:03 +0800 Subject: [PATCH] Closed #181 fix startup error with init elasticsearch client in contact center --- contact-center/Dockerfile | 31 +++++++++++++++++----------- contact-center/admin/build.sh | 5 +---- contact-center/admin/run.sh | 38 +++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 16 deletions(-) create mode 100755 contact-center/admin/run.sh diff --git a/contact-center/Dockerfile b/contact-center/Dockerfile index 800b5d4f..7fd2493f 100644 --- a/contact-center/Dockerfile +++ b/contact-center/Dockerfile @@ -1,4 +1,4 @@ -FROM chatopera/java:1.0.0 +FROM ubuntu:16.04 MAINTAINER Hai Liang Wang ARG VCS_REF @@ -8,9 +8,9 @@ LABEL org.label-schema.vcs-ref=$VCS_REF \ COPY 163.source.list /etc/apt/sources.list -# Set timezone +# Set timezone, install other sw as well RUN apt-get update && \ - apt-get install --no-install-recommends -y tzdata && \ + apt-get install --no-install-recommends -y tzdata openjdk-8-jdk maven && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ dpkg-reconfigure -f noninteractive tzdata && \ rm -rf /var/lib/apt/lists/* @@ -21,19 +21,26 @@ ENV LANGUAGE en_US:en ENV LC_ALL C.UTF-8 # set ENVs -ENV JAVA_HOME=/opt/java-8-oracle -ENV TOMCAT_HOME=/opt/apache-tomcat -ENV PATH=$PATH:$JAVA_HOME/bin +ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 +ENV MAVEN_HOME=/usr/share/maven +ENV PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin # create dirs RUN /bin/bash -c "mkdir -p /{data,logs}" + # build WAR -RUN rm -rf /opt/apache-tomcat/webapps/ROOT* -COPY ./app/target/contact-center-*.war.original /opt/apache-tomcat/webapps/ROOT.war +COPY app /app +COPY config /config +WORKDIR /app +RUN mvn clean package && \ + mkdir -p /opt/chatopera && \ + mv target/contact-center-3.9.0.war /opt/chatopera && \ + rm -rf /app && rm -rf /config && \ + rm -rf /root/.m2 && \ + dpkg -P maven -# clean files -RUN rm -rf /root/.m2 +WORKDIR /opt/chatopera +EXPOSE 8030-8050 +CMD ["java", "-jar", "contact-center-3.9.0.war"] -EXPOSE 8030-8090 9200 9300 -CMD ["/opt/apache-tomcat/bin/catalina.sh", "run"] \ No newline at end of file diff --git a/contact-center/admin/build.sh b/contact-center/admin/build.sh index 8fb05ef5..a6349d7f 100755 --- a/contact-center/admin/build.sh +++ b/contact-center/admin/build.sh @@ -12,11 +12,8 @@ PACKAGE_VERSION=1.0.0 # main [ -z "${BASH_SOURCE[0]}" -o "${BASH_SOURCE[0]}" = "$0" ] || return -set -x -# package -$baseDir/package.sh - # build cd $appHome +set -x docker build --build-arg VCS_REF=`git rev-parse --short HEAD` --force-rm=true --tag $imagename:$PACKAGE_VERSION . docker tag $imagename:$PACKAGE_VERSION $imagename:develop diff --git a/contact-center/admin/run.sh b/contact-center/admin/run.sh new file mode 100755 index 00000000..205e3426 --- /dev/null +++ b/contact-center/admin/run.sh @@ -0,0 +1,38 @@ +#! /bin/bash +########################################### +# +########################################### + +# constants +baseDir=$(cd `dirname "$0"`;pwd) +# functions + +# main +[ -z "${BASH_SOURCE[0]}" -o "${BASH_SOURCE[0]}" = "$0" ] || return +cd $baseDir/ +docker run -it --rm \ + -p 9035:8035 \ + -p 9036:8036 \ + -v $PWD/data:/data \ + -v $PWD/logs:/logs \ + -e "JAVA_OPTS=-Xmx12288m -Xms2048m -XX:PermSize=256m -XX:MaxPermSize=1024m -Djava.net.preferIPv4Stack=true" \ + -e SERVER_PORT=8035 \ + -e SERVER_LOG_PATH=/logs \ + -e SERVER_LOG_LEVEL=INFO \ + -e WEB_UPLOAD_PATH=/data \ + -e SPRING_FREEMARKER_CACHE=true \ + -e SPRING_DATA_ELASTICSEARCH_PROPERTIES_PATH_DATA=/data \ + -e SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.jdbc.Driver \ + -e "SPRING_DATASOURCE_URL=jdbc:mysql://mysql:8037/contactcenter?useUnicode=true&characterEncoding=UTF-8" \ + -e SPRING_DATASOURCE_USERNAME=root \ + -e SPRING_DATASOURCE_PASSWORD=123456 \ + -e MANAGEMENT_SECURITY_ENABLED=false \ + -e SPRING_REDIS_DATABASE=2 \ + -e SPRING_REDIS_HOST=redis \ + -e SPRING_REDIS_PORT=8041 \ + -e CSKEFU_CALLOUT_WATCH_INTERVAL=60000 \ + -e SPRING_DATA_ELASTICSEARCH_CLUSTER_NAME=elasticsearch \ + -e SPRING_DATA_ELASTICSEARCH_CLUSTER_NODES=elasticsearch:8040 \ + -e SPRING_DATA_ELASTICSEARCH_LOCAL=false \ + -e SPRING_DATA_ELASTICSEARCH_REPOSITORIES_ENABLED=true \ + chatopera/contact-center:develop