tomishinets.v 6 anni fa
parent
commit
42c9b0e029
4 ha cambiato i file con 57 aggiunte e 4 eliminazioni
  1. 10 1
      Dockerfile
  2. 11 0
      ROOT.xml
  3. 8 3
      docker-entrypoint.sh
  4. 28 0
      server.xml

+ 10 - 1
Dockerfile

@@ -6,7 +6,7 @@ COPY docker-entrypoint.sh \
 COPY mongodb-org-3.6.repo /etc/yum.repos.d/
 ENV CATALINA_HOME="/opt/tomcat"
 ENV PATH=$CATALINA_HOME/bin:$PATH \
-    CATALINA_OPTS="-Dconfig.file=/etc/web-laboratory/application.conf" \
+    CATALINA_OPTS="-Dconfig.file=/etc/web-laboratory/application.conf -Dnet.spy.log.LoggerImpl=net.spy.memcached.compat.log.SunLogger" \
     JAVA_HOME=/usr/java/default \
     JAVA_OPTS="-Xms512M -Xmx1024M -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true" \
     WORKDIR=$CATALINA_HOME \
@@ -17,6 +17,8 @@ EXPOSE 8090 9000 2551
 HEALTHCHECK --start-period=30s --interval=15s --timeout=5s --retries=2 CMD /tmp/healthcheck.sh
 ARG repo=prod
 ARG version=16.1
+ARG memcached_version=2.3.2
+ARG spymemcached_version=2.12.3
 RUN set -x \
            && curl https://repo.infoclinica.ru/yum/centos/sds-${repo}-${version}.repo -o /etc/yum.repos.d/sds-${repo}-${version}.repo \
            && yum install iputils -y \
@@ -26,8 +28,15 @@ RUN set -x \
            && yum clean all \
            && chmod +x /tmp/docker-entrypoint.sh \
            && chmod +x /tmp/healthcheck.sh \
+           && curl http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/${memcached_version}/memcached-session-manager-${memcached_version}.jar -o /opt/tomcat/lib/memcached-session-manager-${memcached_version}.jar \
+           && curl http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager-tc8/${memcached_version}/memcached-session-manager-tc8-${memcached_version}.jar -o /opt/tomcat/lib/memcached-session-manager-tc8-${memcached_version}.jar \
+           && curl http://repo1.maven.org/maven2/net/spy/spymemcached/${spymemcached_version}/spymemcached-${spymemcached_version}.jar -o /opt/tomcat/lib/spymemcached-${spymemcached_version}.jar \
            && chown -R tomcat:tomcat /etc/web-laboratory \
            && cd /opt/tomcat/conf/web-laboratory/localhost \
            && ln -s /etc/web-laboratory/ROOT.xml ROOT.xml
+COPY ROOT.xml /etc/web-laboratory/
+COPY server.xml /opt/tomcat/conf/
+RUN chown -R tomcat:tomcat /opt/apache-tomcat-8.0.26 \
+           && chown -R tomcat:tomcat /etc/web-laboratory
 USER tomcat
 CMD ["catalina.sh", "run"]

+ 11 - 0
ROOT.xml

@@ -0,0 +1,11 @@
+<Context docBase="../../webapps/web-laboratory.war">
+        <Parameter name="config.file" value="/etc/web-laboratory/application.conf"/>
+       <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
+            memcachedNodes="n1:memcached_db1:11211,n2:memcached_db2:11211"
+            sticky="false"
+            sessionBackupAsync="false"
+            lockingMode="uriPattern:/path1|/path2"
+            requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
+            transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
+       />
+</Context>

+ 8 - 3
docker-entrypoint.sh

@@ -16,9 +16,14 @@ while [ $? -ne 0 ]; do
   nslookup tasks.${ADMIN_HOST}.${APPNET}
 done
 
-sed -i "s/192.168.201.12:27017/${DB_CLUSTER}/" /etc/web-laboratory/application.conf
-sed -i "s/192.168.201.13/$(nslookup tasks.${ADMIN_HOST}.${APPNET} | grep Address | tail -n1 | cut -f2 -d' ')/" /etc/web-laboratory/application.conf
-sed -i "s/192.168.201.23/$(nslookup ${HOSTNAME}.${APPNET} | grep Address | tail -n1 | cut -f2 -d' ')/" /etc/web-laboratory/application.conf
+# Для добавления логирования manager memcached. Redmine 107228
+#sed -i "s/CATALINA_OPTS=\"\$CATALINA_OPTS \$JPDA_OPTS\"/CATALINA_OPTS=\"\$CATALINA_OPTS \$JPDA_OPTS -Dnet.spy.log.LoggerImpl=net.spy.memcached.compat.log.SunLogger\"/" /opt/tomcat/bin/catalina.sh
+sed -i "s/DB_CLUSTER/\"${DB_CLUSTER}\"/" /etc/web-laboratory/application.conf
+sed -i "s/ADMIN_HOST/$(dig tasks.${ADMIN_HOST}.${APPNET} +short)/" /etc/web-laboratory/application.conf
+sed -i "s/NODE_HOST/$(dig ${HOSTNAME}.${APPNET} +short)/" /etc/web-laboratory/application.conf
+
+# Добавлено логирование для manager memcached. Redmine 107228
+echo "de.javakaffee.web.msm.level = ${DEBUG}\nnet.spy.memcached.level = ${DEBUG}" >> /opt/tomcat/conf/logging.properties
 
 source /etc/init.d/web-laboratory status
 

+ 28 - 0
server.xml

@@ -0,0 +1,28 @@
+<Server port="8005" shutdown="SHUTDOWN">
+  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
+  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
+  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
+  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
+  <Service name="web-laboratory">
+    <Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8453" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,application/xml,text/javascript,text/css"/>
+    <Engine name="web-laboratory" defaultHost="localhost">
+      <Host name="localhost" appBase="exploded/web-laboratory">
+        <!--<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
+          <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
+          <Channel className="org.apache.catalina.tribes.group.GroupChannel">
+            <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45565" frequency="500" dropTime="3000"/>
+            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
+              <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
+            </Sender>
+            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="5001" autoBind="100" selectorTimeout="5000" maxThreads="6"/>
+            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
+            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
+          </Channel>
+          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
+        </Cluster>-->
+
+      </Host>
+    </Engine>
+  </Service>
+</Server>
+