Преглед на файлове

docker: add CONTEXT_ROOT env to configure url context root

Zhang Cheng преди 8 години
родител
ревизия
d601911c60
променени са 3 файла, в които са добавени 15 реда и са изтрити 3 реда
  1. 4 1
      Dockerfile
  2. 1 0
      docker-compose.yml
  3. 10 2
      docker-entry.sh

+ 4 - 1
Dockerfile

@@ -50,6 +50,7 @@ FROM tomcat:8.0-jre8
 
 ENV MYSQL_HOST= MYSQL_PORT=3306 MYSQL_DATABASE= MYSQL_USER= MYSQL_PASSWORD=
 ENV ADMIN_EMAIL= ADMIN_PASSWORD=
+ENV CONTEXT_ROOT=/
 
 # install xmlstarlet to edit configurations
 #RUN apk add --no-cache xmlstarlet mysql-client bash
@@ -57,7 +58,9 @@ RUN apt-get update \
 	&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \
 		xmlstarlet \
 		mysql-client \
-	&& rm -rf /var/lib/apt/lists/*
+	&& rm -rf /var/lib/apt/lists/* \
+	&& rm -rf /usr/local/tomcat/webapps/ \
+	&& mkdir /usr/local/tomcat/webapps/
 
 COPY --from=builder /DWSurvey/target/diaowen.war /target/diaowen.war
 COPY docker-entry.sh /docker-entry.sh

+ 1 - 0
docker-compose.yml

@@ -24,6 +24,7 @@ services:
       - MYSQL_PASSWORD=dwsurvey
       - ADMIN_EMAIL=admin@example.com
       - ADMIN_PASSWORD=123456
+      - CONTEXT_ROOT=/
     ports:
       - "8080:8080"
 

+ 10 - 2
docker-entry.sh

@@ -2,7 +2,15 @@
 set -e
 
 WAR_FILE=/target/diaowen.war
-WEBAPP_DIR=/usr/local/tomcat/webapps/diaowen
+WEBAPP_BASE=/usr/local/tomcat/webapps
+
+# determine context root path
+if [[ "x${CONTEXT_ROOT}x" == "xx" || "$CONTEXT_ROOT" == "/" ]]; then
+    CONTEXT_PATH=ROOT
+else
+    CONTEXT_PATH=${CONTEXT_ROOT}
+fi
+WEBAPP_DIR=${WEBAPP_BASE}/${CONTEXT_PATH}
 CONF_DIR=${WEBAPP_DIR}/WEB-INF/classes/conf
 
 require_env() {
@@ -24,7 +32,7 @@ init_run() {
     require_env MYSQL_PASSWORD
 
     echo "Unpacking war ..."
-    unzip -x "$WAR_FILE" -d "$WEBAPP_DIR"
+    unzip -q -x "$WAR_FILE" -d "$WEBAPP_DIR"
 
     echo "Configuring dwsurvey ..."
     sed -i "s^jdbc.url=.*\$jdbc.url=jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}?useUnicode=true\&characterEncoding=utf8g;