Selaa lähdekoodia

make AKKA works

Vadim Surkov 6 vuotta sitten
vanhempi
commit
f678d5dfda
3 muutettua tiedostoa jossa 37 lisäystä ja 10 poistoa
  1. 7 2
      Dockerfile
  2. 19 8
      docker-entrypoint.sh
  3. 11 0
      healthcheck.sh

+ 7 - 2
Dockerfile

@@ -1,13 +1,17 @@
 FROM registry.sdsys.ru/iru/iru-base:0.1
 FROM registry.sdsys.ru/iru/iru-base:0.1
 ENTRYPOINT ["/tmp/docker-entrypoint.sh"]
 ENTRYPOINT ["/tmp/docker-entrypoint.sh"]
-COPY docker-entrypoint.sh /tmp/docker-entrypoint.sh
+COPY docker-entrypoint.sh \
+     healthcheck.sh \
+     /tmp/
 ENV CATALINA_HOME="/opt/tomcat" 
 ENV CATALINA_HOME="/opt/tomcat" 
 ENV PATH=$CATALINA_HOME/bin:$PATH \
 ENV PATH=$CATALINA_HOME/bin:$PATH \
     CATALINA_OPTS="-Dconfig.file=/etc/web-laboratory/application.conf" \
     CATALINA_OPTS="-Dconfig.file=/etc/web-laboratory/application.conf" \
     JAVA_HOME=/usr/java/default \
     JAVA_HOME=/usr/java/default \
     JAVA_OPTS="-Xms512M -Xmx1024M -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true" \
     JAVA_OPTS="-Xms512M -Xmx1024M -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true" \
     WORKDIR=$CATALINA_HOME \
     WORKDIR=$CATALINA_HOME \
-    DB_CLUSTER=mongodb
+    DB_CLUSTER=mongodb \
+    APPNET=labnetwork \
+    ADMIN_HOST=admin-lab
 EXPOSE 8090 9000 2551
 EXPOSE 8090 9000 2551
 HEALTHCHECK --start-period=30s --interval=15s --timeout=5s --retries=2 CMD curl -f -H 'Host:demo.infoclinica.ru' 127.0.0.1:8090/login || exit 1
 HEALTHCHECK --start-period=30s --interval=15s --timeout=5s --retries=2 CMD curl -f -H 'Host:demo.infoclinica.ru' 127.0.0.1:8090/login || exit 1
 ARG repo=prod
 ARG repo=prod
@@ -19,6 +23,7 @@ RUN set -x \
            && yum install web-laboratory -y \
            && yum install web-laboratory -y \
            && yum clean all \
            && yum clean all \
            && chmod +x /tmp/docker-entrypoint.sh \ 
            && chmod +x /tmp/docker-entrypoint.sh \ 
+           && chmod +x /tmp/healthcheck.sh \
            && chown -R tomcat:tomcat /etc/web-laboratory \
            && chown -R tomcat:tomcat /etc/web-laboratory \
            && cd /opt/tomcat/conf/web-laboratory/localhost \
            && cd /opt/tomcat/conf/web-laboratory/localhost \
            && ln -s /etc/web-laboratory/ROOT.xml ROOT.xml
            && ln -s /etc/web-laboratory/ROOT.xml ROOT.xml

+ 19 - 8
docker-entrypoint.sh

@@ -1,16 +1,27 @@
 #!/usr/bin/env bash
 #!/usr/bin/env bash
 
 
-if [ "$DB_CLUSTER" ]; then
-   sed -i "s/192.168.201.12:27017/${DB_CLUSTER}/" /etc/web-laboratory/application.conf
-fi
+if [ ! -z "${APPNET}" ]; then
+   echo "Initial nslookup ${HOSTNAME}.${APPNET}"
+   nslookup ${HOSTNAME}.${APPNET}
+   while [ $? -ne 0 ]; do
+     echo "Waiting for ${HOSTNAME}.${APPNET} to become available"
+     sleep 1
+     nslookup ${HOSTNAME}.${APPNET}
+   done
 
 
-if [ "$ADMIN_HOST" ]; then
-   sed -i "s/192.168.201.13/$ADMIN_HOST/" /etc/web-laboratory/application.conf
-else
-   sed -i "s/192.168.201.13/admin/" /etc/web-laboratory/application.conf
+   echo "Initial nslookup tasks.${ADMIN_HOST}.${APPNET}"
+   nslookup tasks.${ADMIN_HOST}.${APPNET}
+   while [ $? -ne 0 ]; do
+     echo "Waiting for tasks.${ADMIN_HOST}.${APPNET} to become available"
+     sleep 1
+     nslookup tasks.${ADMIN_HOST}.${APPNET}
+   done
 fi
 fi
 
 
-sed -i "s/192.168.201.23/${HOSTNAME}/" /etc/web-laboratory/application.conf
+
+sed -i "s/192.168.201.12:27017/${DB_CLUSTER}/" /etc/web-laboratory/application.conf
+sed -i "s/192.168.201.13/tasks.${ADMIN_HOST}.${APPNET}/" /etc/web-laboratory/application.conf
+sed -i "s/192.168.201.23/${HOSTNAME}.${APPNET}/" /etc/web-laboratory/application.conf
 
 
 #sed -i "s/192\.168\.204\.2x/${HOSTNAME}/" /etc/web-registry-portal/application.conf
 #sed -i "s/192\.168\.204\.2x/${HOSTNAME}/" /etc/web-registry-portal/application.conf
 #sed -i "s/communication = \"remote\"/communication = \"socket\"/" /etc/web-registry-portal/application.conf
 #sed -i "s/communication = \"remote\"/communication = \"socket\"/" /etc/web-registry-portal/application.conf

+ 11 - 0
healthcheck.sh

@@ -0,0 +1,11 @@
+#!/bin/bash
+
+containerstart=`stat -c %Z /proc/1`
+curtime=`date +%s`
+if [[ $(($containerstart-$curtime)) -le "180" ]]; then
+    echo "0"
+    exit 0
+fi
+
+curl -f 127.0.0.1:8090/login || exit 1
+#curl -f -H 'Host:labportal.infoclinica.ru' 127.0.0.1:8090/login