====== 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 =====
* Network Type: Custom: brimble
* Fixed IP address (optional): blank
* Console shell command: Shell
* Privileged: off
Add another Path, Port, Variable...
* Path
* Name: webapps
* Container path: /usr/local/tomcat/webapps
* Host path: /mnt/disks/samsung_nvme/appdata/tomcat/webapps
* read/write
* Port
* Container port: 8080
* Host port: 7070 (or whatever isn't used by unraid
* TCP
===== App Settings =====
* Use similar steps used in VM setup to complete mysql linking etc.
* Install Java / Mysql connectorapt-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 connectorln -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/ folderln -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
==== 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;