User Tools

Site Tools


portainer:dockers:tomcat

Tomcat

Apache Tomcat (or simply Tomcat) is an open source web server and servlet container developed by the Apache Software Foundation (ASF). Tomcat implements the Java Servlet and the JavaServer Pages (JSP) specifications from Oracle, and provides a “pure Java” HTTP web server environment for Java code to run in. In the simplest config Tomcat runs in a single operating system process. The process runs a Java virtual machine (JVM). Every single HTTP request from a browser to Tomcat is processed in the Tomcat process in a separate thread.

Version

I used the official container on DockerHub

Docker Setup

  • publish a new network port
    • 7676 → 8080 TCP
  • volumes:
    • /usr/local/tomcat/webapps → /mnt/nvme/appdata/tomcat/website (or games)
  • network:
    • Type: bridge
    • Fixed IP address (optional): blank
  • Env:

App Settings

  • Use similar steps used in VM setup to complete mysql linking etc.
    • Install Java / Mysql connector
      apt-get install libmysql-java
    • Note: This was not supported in 20.04 at the time and must be installed manually.
      • Download JDBC Driver for Mysql (Connector/J) from https://www.mysql.com/products/connector/
      • ssh into docker:
        docker exec -it football bash
      • Use “cat /etc/os-release” to check what version docker is running
      • Install the debfile:
        dpkg -i thatdebfile.deb
    • Create symlink for connector
      ln -sf /usr/share/java/mysql-connector-java.8.0.27.jar /usr/local/tomcat/lib/mysql-connector-java.jar
    • In reality, all you need are the .jar files and keep them in the appdata somewhere mapped… then just symlink those into the /usr/local/tomcat/lib/ folder
      ln -sf /usr/local/tomcat/webapps/jar/mysql-connector-java.X.X.XX.jar /usr/local/tomcat/lib/mysql-connector-java.jar
      ln -sf /usr/local/tomcat/webapps/jar/javax.mail.jar /usr/local/tomcat/lib/javax.mail.jar
      etc
    • If webinf files need to be compiled:
      javac -cp /usr/local/tomcat/lib/servlet-api.jar:/usr/local/tomcat/lib/jsp-api.jar:/usr/local/tomcat/lib/javax.activation.jar:/usr/local/tomcat/lib/javax.mail.jar webapps/ROOT/WEB-INF/classes/util/*.java
    • Note: this step is different from Tomcat v9 in VM because paths are different.
    • Note2: MUST CHANGE import javax.servlet.* to import jakarta.servlet.* in all the .java files under the WEB-INF folder before compiling with above.
    • Restart
  • Or use script: tomcatlinks.sh
    #!/bin/bash
    
    echo "fixing www.brimble.com"
    echo "creating simlinks for javax.activation.jar"
    docker exec website ln -sf /usr/local/tomcat/webapps/jar/javax.activation-1.2.0.jar /usr/local/tomcat/lib/javax.activation.jar
    echo "creating simlinks for javax.mail.jar"
    docker exec website ln -sf /usr/local/tomcat/webapps/jar/javax.mail.jar /usr/local/tomcat/lib/javax.mail.jar
    echo "creating simlinks for mysql-connector-java.jar"
    docker exec website ln -sf /usr/local/tomcat/webapps/jar/mysql-connector-j-8.0.32.jar /usr/local/tomcat/lib/mysql-connector-java.jar
    echo "done... restarting www.brimble.com"
    sleep 5
    docker container restart website
    
    echo "fixing games.brimble.com"
    echo "creating simlinks for javax.activation.jar"
    docker exec games ln -sf /usr/local/tomcat/webapps/jar/javax.activation-1.2.0.jar /usr/local/tomcat/lib/javax.activation.jar
    echo "creating simlinks for javax.mail.jar"
    docker exec games ln -sf /usr/local/tomcat/webapps/jar/javax.mail.jar /usr/local/tomcat/lib/javax.mail.jar
    echo "creating simlinks for mysql-connector-java.jar"
    docker exec games ln -sf /usr/local/tomcat/webapps/jar/mysql-connector-j-8.0.32.jar /usr/local/tomcat/lib/mysql-connector-java.jar
    echo "done... restarting games.brimble.com"
    sleep 5
    docker container restart games
    
    echo "done"

Add football season

docker cp /mnt/user/backup/webpage/mysql/2023o.csv mysql:/var/lib/mysql-files/
mysql --local-infile=1 -uUSERNAME -p
use DB;
LOAD DATA LOCAL INFILE "2023o.csv" INTO TABLE games_nfl COLUMNS TERMINATED BY ',';
UPDATE games_nfl SET vscore = NULL where year = 2023;
UPDATE games_nfl SET hscore = NULL where year = 2023;
portainer/dockers/tomcat.txt · Last modified: by dirk