myfaces-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lof...@apache.org
Subject [myfaces-tobago] branch master updated: update tomcat disable AJP
Date Wed, 11 Mar 2020 10:20:24 GMT
This is an automated email from the ASF dual-hosted git repository.

lofwyr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git


The following commit(s) were added to refs/heads/master by this push:
     new 68bc846  update tomcat disable AJP
68bc846 is described below

commit 68bc846e31c648f18903c35604e266033110d970
Author: Udo Schnurpfeil <udo.schnurpfeil@irian.eu>
AuthorDate: Wed Mar 4 12:39:16 2020 +0100

    update tomcat
    disable AJP
---
 .../src/main/tobago-vm/docker/README.md            |  52 +++++++
 .../src/main/tobago-vm/docker/tomcat/Dockerfile    |  15 +-
 ...eploy-and-run.sh => download-deploy-and-run.sh} |   2 +-
 .../src/main/tobago-vm/docker/tomcat/server.xml    | 168 +++++++++++++++++++++
 4 files changed, 230 insertions(+), 7 deletions(-)

diff --git a/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/README.md b/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/README.md
new file mode 100644
index 0000000..ed50f3e
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/README.md
@@ -0,0 +1,52 @@
+# Run the different Tobago versions on tobago-vm.apache.org 
+
+The demo on tobago-vm works with docker. 
+Each user with an account on the vm and 
+member of the docker group can manage the containers.
+
+How to become root access is described on the
+[Apache site](https://reference.apache.org/committer/opie).
+
+There is a copy of the source code repo of Tobago in the directory 
+```/opt/docker/tobago/``` which contains the docker-compose configuration 
+in ```tobago-example/tobago-example-demo/src/main/tobago-vm/docker/```.
+
+## Initial installation
+
+Copy these file to the server and login there:
+
+```
+ssh tobago-vm.apache.org
+
+cd /opt/docker
+git clone https://github.com/apache/myfaces-tobago tobago
+chmod o+w -R tobago
+cd /opt/docker/tobago/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/
+
+docker-compose up -d
+```
+
+## Simple Update (only restart needed containers)
+
+only minor changes like version, or staging for votes: 
+
+```
+cd /opt/docker/tobago/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/
+git pull --rebase
+docker-compose build
+docker-compose up -d
+```
+
+## Full Update
+
+Update, rebuild, run: 
+
+```
+cd /opt/docker/tobago/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/
+git pull --rebase
+docker-compose down
+docker pull tomcat:8.5-jre8
+docker pull debian:stable-slim
+docker-compose build
+docker-compose up -d
+```
diff --git a/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/Dockerfile
b/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/Dockerfile
index a79691e..a10e93d 100644
--- a/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/Dockerfile
+++ b/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/Dockerfile
@@ -13,18 +13,21 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM tomcat:8.5-jre8
+FROM tomcat:8.5-jdk8-adoptopenjdk-hotspot
 MAINTAINER dev@myfaces.apache.org
 
+# ansible is needed for downloading from Nexus, todo: may be changed to mvn
 RUN apt-get update \
- && apt-get install -y less vim procps ansible python-lxml
+ && apt-get install -y less vim procps ansible python-lxml\
+ && apt-get clean
 
-RUN rm -r /usr/local/tomcat/webapps/*
+RUN rm -r /usr/local/tomcat/webapps.dist
 
-COPY deploy-and-run.sh /usr/local/tomcat/bin
-RUN chmod +x /usr/local/tomcat/bin/deploy-and-run.sh
+COPY server.xml /usr/local/tomcat/conf
+COPY download-deploy-and-run.sh /usr/local/tomcat/bin
+RUN chmod +x /usr/local/tomcat/bin/download-deploy-and-run.sh
 
 #ENV TOBAGO_VERSION undefined
 #ENV CONTEXT_PATH ROOT
 
-CMD ["deploy-and-run.sh"]
+CMD ["download-deploy-and-run.sh"]
diff --git a/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/deploy-and-run.sh
b/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/download-deploy-and-run.sh
similarity index 97%
rename from tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/deploy-and-run.sh
rename to tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/download-deploy-and-run.sh
index c0b6589..ce6ae2b 100644
--- a/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/deploy-and-run.sh
+++ b/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/download-deploy-and-run.sh
@@ -28,6 +28,6 @@ ARTIFACT=/opt/docker/artifacts/tobago-example-demo-${TOBAGO_VERSION}.war
 
 ansible localhost -m maven_artifact -a "group_id=org.apache.myfaces.tobago artifact_id=tobago-example-demo
version=${TOBAGO_VERSION} extension=war repository_url=${REPO} dest=${ARTIFACT}"
 mkdir ${TARGET}
-unzip -d ${TARGET} ${ARTIFACT}
+pushd ${TARGET} && jar xf ${ARTIFACT}
 
 catalina.sh run
diff --git a/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/server.xml
b/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/server.xml
new file mode 100644
index 0000000..7968383
--- /dev/null
+++ b/tobago-example/tobago-example-demo/src/main/tobago-vm/docker/tomcat/server.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    <!--
+      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.
+    -->
+    <!-- Note:  A "Server" is not itself a "Container", so you may not
+         define subcomponents such as "Valves" at this level.
+         Documentation at /docs/config/server.html
+     -->
+<Server port="8005" shutdown="SHUTDOWN">
+  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
+  <!-- Security listener. Documentation at /docs/config/listeners.html
+  <Listener className="org.apache.catalina.security.SecurityListener" />
+  -->
+  <!--APR library loader. Documentation at /docs/apr.html -->
+  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
+  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
+  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
+  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
+  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
+
+  <!-- Global JNDI resources
+       Documentation at /docs/jndi-resources-howto.html
+  -->
+  <GlobalNamingResources>
+    <!-- Editable user database that can also be used by
+         UserDatabaseRealm to authenticate users
+    -->
+    <Resource name="UserDatabase" auth="Container"
+              type="org.apache.catalina.UserDatabase"
+              description="User database that can be updated and saved"
+              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
+              pathname="conf/tomcat-users.xml" />
+  </GlobalNamingResources>
+
+  <!-- A "Service" is a collection of one or more "Connectors" that share
+       a single "Container" Note:  A "Service" is not itself a "Container",
+       so you may not define subcomponents such as "Valves" at this level.
+       Documentation at /docs/config/service.html
+   -->
+  <Service name="Catalina">
+
+    <!--The connectors can use a shared executor, you can define one or more named thread
pools-->
+    <!--
+    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
+        maxThreads="150" minSpareThreads="4"/>
+    -->
+
+
+    <!-- A "Connector" represents an endpoint by which requests are received
+         and responses are returned. Documentation at :
+         Java HTTP Connector: /docs/config/http.html
+         Java AJP  Connector: /docs/config/ajp.html
+         APR (HTTP/AJP) Connector: /docs/apr.html
+         Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
+    -->
+    <Connector port="8080" protocol="HTTP/1.1"
+               connectionTimeout="20000"
+               redirectPort="8443" />
+    <!-- A "Connector" using the shared thread pool-->
+    <!--
+    <Connector executor="tomcatThreadPool"
+               port="8080" protocol="HTTP/1.1"
+               connectionTimeout="20000"
+               redirectPort="8443" />
+    -->
+    <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443
+         This connector uses the NIO implementation. The default
+         SSLImplementation will depend on the presence of the APR/native
+         library and the useOpenSSL attribute of the
+         AprLifecycleListener.
+         Either JSSE or OpenSSL style configuration may be used regardless of
+         the SSLImplementation selected. JSSE style configuration is used below.
+    -->
+    <!--
+    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
+               maxThreads="150" SSLEnabled="true">
+        <SSLHostConfig>
+            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
+                         type="RSA" />
+        </SSLHostConfig>
+    </Connector>
+    -->
+    <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
+         This connector uses the APR/native implementation which always uses
+         OpenSSL for TLS.
+         Either JSSE or OpenSSL style configuration may be used. OpenSSL style
+         configuration is used below.
+    -->
+    <!--
+    <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
+               maxThreads="150" SSLEnabled="true" >
+        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
+        <SSLHostConfig>
+            <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
+                         certificateFile="conf/localhost-rsa-cert.pem"
+                         certificateChainFile="conf/localhost-rsa-chain.pem"
+                         type="RSA" />
+        </SSLHostConfig>
+    </Connector>
+    -->
+
+    <!-- Define an AJP 1.3 Connector on port 8009 -->
+<!--    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />-->
+
+
+    <!-- An Engine represents the entry point (within Catalina) that processes
+         every request.  The Engine implementation for Tomcat stand alone
+         analyzes the HTTP headers included with the request, and passes them
+         on to the appropriate Host (virtual host).
+         Documentation at /docs/config/engine.html -->
+
+    <!-- You should set jvmRoute to support load-balancing via AJP ie :
+    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
+    -->
+    <Engine name="Catalina" defaultHost="localhost">
+
+      <!--For clustering, please take a look at documentation at:
+          /docs/cluster-howto.html  (simple how to)
+          /docs/config/cluster.html (reference documentation) -->
+      <!--
+      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
+      -->
+
+      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
+           via a brute-force attack -->
+<!--      <Realm className="org.apache.catalina.realm.LockOutRealm">-->
+        <!-- This Realm uses the UserDatabase configured in the global JNDI
+             resources under the key "UserDatabase".  Any edits
+             that are performed against this UserDatabase are immediately
+             available for use by the Realm.  -->
+<!--        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"-->
+<!--               resourceName="UserDatabase"/>-->
+<!--      </Realm>-->
+
+      <Host name="localhost" appBase="webapps" autoDeploy="true">
+<!--      <Host name="localhost"  appBase="webapps"-->
+<!--            unpackWARs="true" autoDeploy="true">-->
+
+        <!-- SingleSignOn valve, share authentication between web applications
+             Documentation at: /docs/config/valve.html -->
+        <!--
+        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
+        -->
+
+        <!-- Access log processes all example.
+             Documentation at: /docs/config/valve.html
+             Note: The pattern used is equivalent to using pattern="common" -->
+        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
+               prefix="localhost_access_log" suffix=".txt"
+               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
+
+      </Host>
+    </Engine>
+  </Service>
+</Server>


Mime
View raw message