-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1073 from SUSE/tomcat_readme
Convert tomcat readme into a Jinja2 template
- Loading branch information
Showing
3 changed files
with
90 additions
and
87 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
# Tomcat {{ image.version }} Container Image | ||
|
||
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. | ||
|
||
|
||
## How to use the image | ||
|
||
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: | ||
```ShellSession | ||
$ podman run -d --rm -p 8080:8080 {{ image.pretty_reference }} | ||
``` | ||
|
||
The deployed webapp is then accessible via `http://localhost:8080/$webapp_name`. | ||
|
||
|
||
### How to use the image with rootless Podman | ||
|
||
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 will not have write access to the mounted directory. To avoid | ||
permission issues change permissions of the shared directory to `0777` as | ||
follows: | ||
|
||
```ShellSession | ||
$ chmod 0777 /path/to/my/app | ||
$ podman run --rm -d -v /path/to/my/app:{{ image.env['CATALINA_HOME'] }}/webapps:z \ | ||
-p 8080:8080 {{ image.pretty_reference }} | ||
``` | ||
|
||
|
||
## Configuration | ||
|
||
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: | ||
```ShellSession | ||
$ podman run -it --rm \ | ||
-e JAVA_OPTS="-Xmx1024m" -p 8080:8080 \ | ||
{{ image.pretty_reference }} | ||
``` | ||
|
||
The image ships with `CATALINA_HOME` set to `{{ image.env['CATALINA_HOME'] }}` | ||
and `CATALINA_BASE` set to `{{ image.env['CATALINA_BASE'] }}`. | ||
|
||
|
||
## Samples | ||
|
||
By default, the sample applications shipped with Tomcat are not installed in | ||
the container image. Add them by installing one of the following | ||
packages: | ||
- {{ image.package_list[0] }}-webapps | ||
- {{ image.package_list[0] }}-admin-webapps | ||
- {{ image.package_list[0] }}-docs-webapp | ||
|
||
{% if image.env['TOMCAT_MAJOR'] > 9 -%} | ||
## Upgrading from Tomcat 9 | ||
|
||
Tomcat 9 implements Java EE 8, and Tomcat {{ image.env['TOMCAT_MAJOR'] }} | ||
implements Jakarta EE 9. Before upgrading from version 9, consult the | ||
[upstream migration guide](https://tomcat.apache.org/migration-{{ image.env['TOMCAT_MAJOR'] }}.html). | ||
{%- endif %} | ||
|
||
{% include 'licensing_and_eula.j2' %} |