Skip to main content

Apache Tomcat 9 / JRE 8


A volte è necessario avere a disposizione ambienti di sviluppo non recentissimi, per evitare di "sporcare" macchine di sviluppo con strumenti datati. Docker diventa una valida alternativa per avere velocemente in locale, ambienti e applicativi su cui lavorare anche se vecchi.

Creiamo un Dockder Container Tomcat 9 con una vecchia Java virtual machine 8.

docker container run -p 8081:8080 -v {PATH_TO_HOST_PATH}:/usr/local/tomcat/webapps tomcat:9-jre8

Creiamo un bind tra la cartella locale dell'host PATH_TO_HOST_PATH e  la cartella /usr/local/tomcat/webapps del container, in modo da interagire direttamente con le app installate, senza dover accedere al container tramite shell e altri metodi che complicherebbero la vita. Usando un binding come questo, usando una cartella locale all'host vuota, porta di conseguenza ad avere anche la cartella webapps del container vuota. Se vogliamo usare le app standard con cui Tomcat viene normalmente installato (ROOT/manager/docs...), dobbiamo copiarle da un altra installazione nella cartella PATH_TO_HOST_PATH.

Collegandoci alla shell del container, installiamo vi e modifichiamo i file di configurazione di Tomcat:

  • apt-get update
  • apt-get install vim

Modifichiamo i file di configurazione di Tomcat, sotto la cartella /conf. Nel file tomcat-users.xml possiamo sblocccare gli accessi a /html/manager. Il file context.xml va modificato secondo i manuali ufficiali tomcat:

For Tomcat v8.5.4 and above, the file <tomcat>/webapps/manager/META-INF/context.xml has been adjusted:

<Context antiResourceLocking="false" privileged="true" >
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>

Change this file to comment the Valve:

<Context antiResourceLocking="false" privileged="true" >
    <!--
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
    -->
</Context>

After that, refresh your browser (not need to restart Tomcat), you can see the manager page.