Docker Tomcat 7 container
This project is a Tomcat image/container based on Java 8.
The image is configured to work with Maven builds (*.war
files) and will automatically deploy them as running apps when the container is launched.
Ports 80 and 443 are exposed.
Environment Variables
TOMCAT_VERSION
is the full version to deploy, including the revision. This defaults to 7.0.57.
DEPLOY_DIR
is where your *.war
files will be located. This is used by the deploy-and-run.sh script to auto-load the wars. The default value is /maven.
Volumes
/maven
/opt/tomcat/logs
/opt/tomcat/work
/opt/tomcat/temp
/tmp/hsperfdata_root
Of these volumes, the most crucial is /maven
, since that's where wars are deployed from. I typically create /opt/maven and then map them at launch time (-v /opt/maven:/maven). The other volumes are only strictly necessary if you want or need persistence.
Example Usage
docker run --name="sometomcat" -v /opt/maven:/maven -v /var/log/tomcat:/opt/tomcat/logs -p 80:80 -p 8443:8443 -d enterbridge/tomcat7
Other Files
deploy-and-run.sh
is the code that looks for *.war
files in /maven
and copies them into /opt/tomcat/webapps
so that they can be automatically deployed.
tomcat-users.xml
holds credentials for the host-manager default webapp. Unless modified and rebuilt, the credentials default to admin/admin.
ping.p12
is a self-signed certificate suitable for testing purposes. In production you should replace this with your own SSL certificate.
server.xml
is the core configuration file for Tomcat. If you replace the existing SSL certificate with another, you'll need to update this file to reflect not only the new file name, but also the credentials for accessing it. All of these settings are in the "<Connector SSLEnabled="true"" stanza.
postgresql-9.4.1210.jre7.jar
is the PostgreSQL connector plugin. Without this, Tomcat cannot connect to the Postgres database.
context.xml
contains several key configuration items, including the Postgres connector and filesystem paths for uploads and downloads. All of these must be reconfigured as is appropriate for your environment before starting the container.
Upstream thanks
This image is based heavily on the consol/tomcat-7.0 image, with a few tweaks in the scripts.