Apache Tomcat (Tomcat for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies. It provides a pure Java HTTP web server environment that can run Java code. It is a Java web application server and not a complete JEE application server.
By default, the image launches Tomcat with the same configuration as the one
that comes with SUSE Linux Enterprise Server. The difference is that logging is
sent to stdout, meaning that the podman logs tomcat
command displays Tomcat
logs.
For security reasons, the image runs as the tomcat user. This means that
additional packages cannot be installed via zypper
, unless the user becomes
root
.
To deploy an application, copy the .war
file file into
$CATALINA_BASE/webapps
(either during a container build or by bind-mounting
the directory), and launch the container using the following command:
$ podman run -d --rm -p 8080:8080 registry.opensuse.org/opensuse/tomcat:10
The deployed webapp is then accessible via http://localhost:8080/$webapp_name
.
The container image can be used in rootless mode with Podman. Keep in mind that
Podman remaps the tomcat
user in the container to a different user on the
host. This user does not have write access to the mounted directory. To avoid
permission issues change permissions of the shared directory to 0777
as
follows:
$ chmod 0777 /path/to/my/app
$ podman run --rm -d -v /path/to/my/app:/usr/share/tomcat/webapps:z \
-p 8080:8080 registry.opensuse.org/opensuse/tomcat:10
The main Tomcat configuration files (for example
/etc/tomcat/logging.properties
) are stored in /etc/tomcat/
.
Tomcat's runtime options can be configured using the environment variables
JAVA_OPTS
and CATALINA_OPTS
. JAVA_OPTS
specifies general options used for
the JVM, whereas CATALINA_OPTS
specifies Tomcat's flags. You can pass the
options to the container runtime using the -e
flag:
$ podman run -it --rm \
-e JAVA_OPTS="-Xmx1024m" -p 8080:8080 \
registry.opensuse.org/opensuse/tomcat:10
The image ships with CATALINA_HOME
set to /usr/share/tomcat
and CATALINA_BASE
set to /usr/share/tomcat
.
By default, the sample applications shipped with Tomcat are not installed in the container image. Add them by installing one of the following packages: - tomcat10-webapps - tomcat10-admin-webapps
Tomcat 9 implements Java EE 8, and Tomcat 10 implements Jakarta EE 9. Before upgrading from version 9, consult the upstream migration guide.
SPDX-License-Identifier: MIT
The build recipe and this documentation is licensed as MIT. The container itself contains various software components under various open source licenses listed in the associated Software Bill of Materials (SBOM).
This image is based on openSUSE Tumbleweed.