59 lines
1.6 KiB
Docker
59 lines
1.6 KiB
Docker
#FROM tomcat:10-jdk17-openjdk-bullseye
|
|
FROM tomcat:11.0-jdk21-temurin-jammy
|
|
|
|
# Packages
|
|
RUN apt-get update
|
|
|
|
## quality of life
|
|
RUN apt-get install -y libreadline8 less procps
|
|
|
|
## deps
|
|
RUN apt-get install -y libtcnative-1
|
|
|
|
## needed for setup, uninstalled later
|
|
RUN apt-get install -y xmlstarlet
|
|
|
|
|
|
# Scripts
|
|
ENV BASE /usr/local/tomcat
|
|
|
|
# Tomcat config file
|
|
ADD setenv.sh "$BASE"/bin/setenv.sh
|
|
RUN chmod +x "$BASE"/bin/setenv.sh
|
|
|
|
## Activate manager
|
|
RUN cd /usr/local/tomcat; cp -a webapps.dist/manager webapps/
|
|
|
|
## Replace users file
|
|
ADD tomcat-users.xml "$BASE"/conf/
|
|
|
|
## Add manager roles
|
|
RUN for tag in manager-script manager-gui; do \
|
|
xmlstarlet ed -L \
|
|
-s "/tomcat-users" -t elem -n "new-role" -v "" \
|
|
-i "//new-role" -t attr -n "rolename" -v "$tag" \
|
|
-r "//new-role" -v "role" \
|
|
"$BASE"/conf/tomcat-users.xml; \
|
|
done
|
|
|
|
## Activate AJP
|
|
RUN xmlstarlet ed -L \
|
|
-s "/Server/Service" -t elem -n "new-Connector" -v "" \
|
|
-i "//new-Connector" -t attr -n "protocol" -v "AJP/1.3" \
|
|
-i "//new-Connector" -t attr -n "address" -v "0.0.0.0" \
|
|
-i "//new-Connector" -t attr -n "port" -v "8009" \
|
|
-i "//new-Connector" -t attr -n "tomcatAuthentication" -v "false" \
|
|
-i "//new-Connector" -t attr -n "secretRequired" -v "false" \
|
|
-i "//new-Connector" -t attr -n "useIPVHosts" -v "true" \
|
|
-r "//new-Connector" -v "Connector" \
|
|
"$BASE"/conf/server.xml
|
|
|
|
## Allow manager access from outside
|
|
RUN xmlstarlet ed -L \
|
|
-d "/Context/Valve" \
|
|
"$BASE"/webapps/manager/META-INF/context.xml
|
|
|
|
# Cleanup
|
|
RUN apt-get autoremove -y --purge xmlstarlet
|
|
RUN apt-get clean
|