diff --git a/.obs/workflows.yml b/.obs/workflows.yml index 77d4dcd82..9696834fe 100644 --- a/.obs/workflows.yml +++ b/.obs/workflows.yml @@ -3,183 +3,191 @@ staging_build: steps: - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: python-3.12-image + source_package: 389-ds-container target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: python-3.6-image + source_package: alertmanager-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: python-3.11-image + source_package: blackbox_exporter-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: 389-ds-container + source_package: busybox-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: rmt-nginx-image + source_package: aspnet-runtime-6.0 target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: nginx-image + source_package: aspnet-runtime-7.0 target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: pcp-image + source_package: aspnet-runtime-8.0 target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: distribution-image + source_package: dotnet-runtime-6.0 target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: helm-image + source_package: dotnet-runtime-7.0 target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: rmt-server-image + source_package: dotnet-runtime-8.0 target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: rust-oldstable-image + source_package: dotnet-6.0 target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: rust-stable-image + source_package: dotnet-7.0 + target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging + - branch_package: + source_project: home:defolos:BCI:CR:SLE-15-SP6 + source_package: dotnet-8.0 target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 source_package: git-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging + - branch_package: + source_project: home:defolos:BCI:CR:SLE-15-SP6 + source_package: golang-oldstable-openssl-image + target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 source_package: golang-oldstable-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: golang-stable-image + source_package: golang-stable-openssl-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: golang-oldstable-openssl-image + source_package: golang-stable-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: golang-stable-openssl-image + source_package: grafana-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: ruby-2.5-image + source_package: helm-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: nodejs-20-image + source_package: init-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: openjdk-21-devel-image + source_package: micro-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: openjdk-21-image + source_package: minimal-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: php8-image + source_package: nginx-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: php-apache8-image + source_package: nodejs-20-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: php-fpm8-image + source_package: openjdk-21-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: init-image + source_package: openjdk-21-devel-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: rmt-mariadb-image + source_package: pcp-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: rmt-mariadb-client-image + source_package: php8-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: postgres-16-image + source_package: php-apache8-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: prometheus-image + source_package: php-fpm8-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: alertmanager-image + source_package: postgres-16-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: blackbox_exporter-image + source_package: prometheus-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: grafana-image + source_package: python-3.11-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: minimal-image + source_package: python-3.12-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: micro-image + source_package: python-3.6-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: busybox-image + source_package: distribution-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: sle15-kernel-module-devel-image + source_package: rmt-mariadb-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: dotnet-6.0 + source_package: rmt-mariadb-client-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: dotnet-7.0 + source_package: rmt-nginx-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: dotnet-8.0 + source_package: rmt-server-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: dotnet-runtime-6.0 + source_package: ruby-2.5-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: dotnet-runtime-7.0 + source_package: rust-oldstable-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: dotnet-runtime-8.0 + source_package: rust-stable-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: aspnet-runtime-6.0 + source_package: sle15-kernel-module-devel-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: aspnet-runtime-7.0 + source_package: tomcat-10-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging - branch_package: source_project: home:defolos:BCI:CR:SLE-15-SP6 - source_package: aspnet-runtime-8.0 + source_package: tomcat-9-image target_project: home:defolos:BCI:CR:SLE-15-SP6:Staging filters: event: pull_request @@ -200,139 +208,145 @@ refresh_devel_BCI: steps: - trigger_services: project: devel:BCI:SLE-15-SP6 - package: python-3.12-image + package: 389-ds-container - trigger_services: project: devel:BCI:SLE-15-SP6 - package: python-3.6-image + package: alertmanager-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: python-3.11-image + package: blackbox_exporter-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: 389-ds-container + package: busybox-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: rmt-nginx-image + package: aspnet-runtime-6.0 - trigger_services: project: devel:BCI:SLE-15-SP6 - package: nginx-image + package: aspnet-runtime-7.0 - trigger_services: project: devel:BCI:SLE-15-SP6 - package: pcp-image + package: aspnet-runtime-8.0 - trigger_services: project: devel:BCI:SLE-15-SP6 - package: distribution-image + package: dotnet-runtime-6.0 - trigger_services: project: devel:BCI:SLE-15-SP6 - package: helm-image + package: dotnet-runtime-7.0 - trigger_services: project: devel:BCI:SLE-15-SP6 - package: rmt-server-image + package: dotnet-runtime-8.0 - trigger_services: project: devel:BCI:SLE-15-SP6 - package: rust-oldstable-image + package: dotnet-6.0 - trigger_services: project: devel:BCI:SLE-15-SP6 - package: rust-stable-image + package: dotnet-7.0 + - trigger_services: + project: devel:BCI:SLE-15-SP6 + package: dotnet-8.0 - trigger_services: project: devel:BCI:SLE-15-SP6 package: git-image + - trigger_services: + project: devel:BCI:SLE-15-SP6 + package: golang-oldstable-openssl-image - trigger_services: project: devel:BCI:SLE-15-SP6 package: golang-oldstable-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: golang-stable-image + package: golang-stable-openssl-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: golang-oldstable-openssl-image + package: golang-stable-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: golang-stable-openssl-image + package: grafana-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: ruby-2.5-image + package: helm-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: nodejs-20-image + package: init-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: openjdk-21-devel-image + package: micro-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: openjdk-21-image + package: minimal-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: php8-image + package: nginx-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: php-apache8-image + package: nodejs-20-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: php-fpm8-image + package: openjdk-21-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: init-image + package: openjdk-21-devel-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: rmt-mariadb-image + package: pcp-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: rmt-mariadb-client-image + package: php8-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: postgres-16-image + package: php-apache8-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: prometheus-image + package: php-fpm8-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: alertmanager-image + package: postgres-16-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: blackbox_exporter-image + package: prometheus-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: grafana-image + package: python-3.11-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: minimal-image + package: python-3.12-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: micro-image + package: python-3.6-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: busybox-image + package: distribution-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: sle15-kernel-module-devel-image + package: rmt-mariadb-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: dotnet-6.0 + package: rmt-mariadb-client-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: dotnet-7.0 + package: rmt-nginx-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: dotnet-8.0 + package: rmt-server-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: dotnet-runtime-6.0 + package: ruby-2.5-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: dotnet-runtime-7.0 + package: rust-oldstable-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: dotnet-runtime-8.0 + package: rust-stable-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: aspnet-runtime-6.0 + package: sle15-kernel-module-devel-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: aspnet-runtime-7.0 + package: tomcat-10-image - trigger_services: project: devel:BCI:SLE-15-SP6 - package: aspnet-runtime-8.0 + package: tomcat-9-image filters: event: push branches: diff --git a/sle15-kernel-module-devel-image/Dockerfile b/sle15-kernel-module-devel-image/Dockerfile index 555094166..f69baaa4c 100644 --- a/sle15-kernel-module-devel-image/Dockerfile +++ b/sle15-kernel-module-devel-image/Dockerfile @@ -40,4 +40,4 @@ LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle#suse-linux-enterpri LABEL com.suse.release-stage="beta" # endlabelprefix -RUN set -euo pipefail; zypper -n in --no-recommends kernel-devel kernel-syms gcc kmod-compat make patch awk rpm-build; zypper -n clean; rm -rf /var/log/* +RUN set -euo pipefail; zypper -n in --no-recommends kernel-devel kernel-syms gcc kmod-compat make patch awk rpm-build sles-release; zypper -n clean; rm -rf /var/log/* diff --git a/tomcat-10-image/Dockerfile b/tomcat-10-image/Dockerfile new file mode 100644 index 000000000..02cf3cc55 --- /dev/null +++ b/tomcat-10-image/Dockerfile @@ -0,0 +1,65 @@ +# SPDX-License-Identifier: MIT + +# Copyright (c) 2024 SUSE LLC + +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. + +# The content of THIS FILE IS AUTOGENERATED and should not be manually modified. +# It is maintained by the BCI team and generated by +# https://github.com/SUSE/BCI-dockerfile-generator + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# You can contact the BCI team via https://github.com/SUSE/bci/discussions + + +#!BuildTag: suse/tomcat:10 +#!BuildTag: suse/tomcat:10-%RELEASE% +#!BuildTag: suse/tomcat:%%tomcat_version%% +#!BuildTag: suse/tomcat:%%tomcat_version%%-%RELEASE% +#!BuildTag: suse/tomcat:%%tomcat_minor%% +#!BuildTag: suse/tomcat:%%tomcat_minor%%-%RELEASE% +#!BuildName: suse-tomcat-10 +#!BuildVersion: 15.6.10 +FROM suse/sle15:15.6 + +MAINTAINER SUSE LLC (https://www.suse.com/) + +# Define labels according to https://en.opensuse.org/Building_derived_containers +# labelprefix=com.suse.application.tomcat +LABEL org.opencontainers.image.title="SLE Apache Tomcat 10" +LABEL org.opencontainers.image.description="Apache Tomcat 10 container based on the SLE Base Container Image." +LABEL org.opencontainers.image.version="10" +LABEL org.opencontainers.image.url="https://www.suse.com/products/base-container-images/" +LABEL org.opencontainers.image.created="%BUILDTIME%" +LABEL org.opencontainers.image.vendor="SUSE LLC" +LABEL org.opencontainers.image.source="%SOURCEURL%" +LABEL io.artifacthub.package.readme-url="%SOURCEURL%/README.md" +LABEL io.artifacthub.package.logo-url="https://tomcat.apache.org/res/images/tomcat.png" +LABEL org.opensuse.reference="registry.suse.com/suse/tomcat:10-%RELEASE%" +LABEL org.openbuildservice.disturl="%DISTURL%" +LABEL com.suse.supportlevel="techpreview" +LABEL com.suse.eula="sle-bci" +LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle#suse-linux-enterprise-server-15" +LABEL com.suse.release-stage="beta" +# endlabelprefix + +RUN set -euo pipefail; zypper -n in --no-recommends tomcat10; zypper -n clean; rm -rf /var/log/* +ENV TOMCAT_MAJOR="10" +ENV TOMCAT_VERSION="%%tomcat_version%%" +ENV CATALINA_HOME="/usr/share/tomcat" +ENV CATALINA_BASE="/usr/share/tomcat" +ENV PATH="/usr/share/tomcat/bin:$PATH" + +CMD ["/usr/lib/tomcat/server", "start"] +EXPOSE 8080 +RUN set -euo pipefail; mkdir -p /var/log/tomcat; chown --recursive tomcat:tomcat /var/log/tomcat; +RUN set -euo pipefail; \ + sed -i /etc/tomcat/logging.properties \ + -e 's|org\.apache\.catalina\.core\.ContainerBase\.\[Catalina\]\.\[localhost\]\.handlers =.*|org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = java.util.logging.ConsoleHandler|' \ + -e 's|org\.apache\.catalina\.core\.ContainerBase\.\[Catalina\]\.\[localhost\]\.\[/manager\]\.handlers =.*|org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = java.util.logging.ConsoleHandler|' \ + -e 's|org\.apache\.catalina\.core\.ContainerBase\.\[Catalina\]\.\[localhost\]\.\[/host-manager\]\.handlers =.*|org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = java.util.logging.ConsoleHandler|' + +WORKDIR $CATALINA_HOME +USER tomcat diff --git a/tomcat-10-image/README.md b/tomcat-10-image/README.md new file mode 100644 index 000000000..daf339016 --- /dev/null +++ b/tomcat-10-image/README.md @@ -0,0 +1,79 @@ +# Tomcat 10 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 registry.suse.com/suse/tomcat:10 +``` +​ +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:/usr/share/tomcat/webapps:z \ + -p 8080:8080 registry.suse.com/suse/tomcat:10 +``` +​ + +## 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 \ + registry.suse.com/suse/tomcat:10 +``` +​ +The image ships with `CATALINA_HOME` set to `/usr/share/tomcat` and `CATALINA_BASE` set to +`/usr/share/tomcat`. +​ +​ +## Samples +​ +By default, the sample applications shipped with Tomcat are not installed in +the container image. You can obtain them by installing one of the following +packages: +- tomcat10-webapps +- tomcat10-admin-webapps +- tomcat10-docs-webapp + + +## Upgrading from Tomcat 9 +​ +Tomcat 9 implements Java EE 8, and Tomcat 10 implements Jakarta +EE 9. Before upgrading from version 9, consult the upstream migration guide: +https://tomcat.apache.org/migration-10.html diff --git a/tomcat-10-image/_service b/tomcat-10-image/_service new file mode 100644 index 000000000..152ffcaa0 --- /dev/null +++ b/tomcat-10-image/_service @@ -0,0 +1,15 @@ + + + + + Dockerfile + %%tomcat_version%% + tomcat10 + + + Dockerfile + %%tomcat_minor%% + tomcat10 + minor + + \ No newline at end of file diff --git a/tomcat-10-image/tomcat-10-image.changes b/tomcat-10-image/tomcat-10-image.changes new file mode 100644 index 000000000..f67753d7c --- /dev/null +++ b/tomcat-10-image/tomcat-10-image.changes @@ -0,0 +1,4 @@ +------------------------------------------------------------------- +Fri Mar 08 07:41:16 UTC 2024 - SUSE Update Bot + +- First version of the Apache Tomcat 10 BCI diff --git a/tomcat-9-image/Dockerfile b/tomcat-9-image/Dockerfile new file mode 100644 index 000000000..654458fad --- /dev/null +++ b/tomcat-9-image/Dockerfile @@ -0,0 +1,65 @@ +# SPDX-License-Identifier: MIT + +# Copyright (c) 2024 SUSE LLC + +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. + +# The content of THIS FILE IS AUTOGENERATED and should not be manually modified. +# It is maintained by the BCI team and generated by +# https://github.com/SUSE/BCI-dockerfile-generator + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# You can contact the BCI team via https://github.com/SUSE/bci/discussions + + +#!BuildTag: suse/tomcat:9 +#!BuildTag: suse/tomcat:9-%RELEASE% +#!BuildTag: suse/tomcat:%%tomcat_version%% +#!BuildTag: suse/tomcat:%%tomcat_version%%-%RELEASE% +#!BuildTag: suse/tomcat:%%tomcat_minor%% +#!BuildTag: suse/tomcat:%%tomcat_minor%%-%RELEASE% +#!BuildName: suse-tomcat-9 +#!BuildVersion: 15.6.9 +FROM suse/sle15:15.6 + +MAINTAINER SUSE LLC (https://www.suse.com/) + +# Define labels according to https://en.opensuse.org/Building_derived_containers +# labelprefix=com.suse.application.tomcat +LABEL org.opencontainers.image.title="SLE Apache Tomcat 9" +LABEL org.opencontainers.image.description="Apache Tomcat 9 container based on the SLE Base Container Image." +LABEL org.opencontainers.image.version="9" +LABEL org.opencontainers.image.url="https://www.suse.com/products/base-container-images/" +LABEL org.opencontainers.image.created="%BUILDTIME%" +LABEL org.opencontainers.image.vendor="SUSE LLC" +LABEL org.opencontainers.image.source="%SOURCEURL%" +LABEL io.artifacthub.package.readme-url="%SOURCEURL%/README.md" +LABEL io.artifacthub.package.logo-url="https://tomcat.apache.org/res/images/tomcat.png" +LABEL org.opensuse.reference="registry.suse.com/suse/tomcat:9-%RELEASE%" +LABEL org.openbuildservice.disturl="%DISTURL%" +LABEL com.suse.supportlevel="techpreview" +LABEL com.suse.eula="sle-bci" +LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle#suse-linux-enterprise-server-15" +LABEL com.suse.release-stage="beta" +# endlabelprefix + +RUN set -euo pipefail; zypper -n in --no-recommends tomcat; zypper -n clean; rm -rf /var/log/* +ENV TOMCAT_MAJOR="9" +ENV TOMCAT_VERSION="%%tomcat_version%%" +ENV CATALINA_HOME="/usr/share/tomcat" +ENV CATALINA_BASE="/usr/share/tomcat" +ENV PATH="/usr/share/tomcat/bin:$PATH" + +CMD ["/usr/lib/tomcat/server", "start"] +EXPOSE 8080 +RUN set -euo pipefail; mkdir -p /var/log/tomcat; chown --recursive tomcat:tomcat /var/log/tomcat; +RUN set -euo pipefail; \ + sed -i /etc/tomcat/logging.properties \ + -e 's|org\.apache\.catalina\.core\.ContainerBase\.\[Catalina\]\.\[localhost\]\.handlers =.*|org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = java.util.logging.ConsoleHandler|' \ + -e 's|org\.apache\.catalina\.core\.ContainerBase\.\[Catalina\]\.\[localhost\]\.\[/manager\]\.handlers =.*|org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = java.util.logging.ConsoleHandler|' \ + -e 's|org\.apache\.catalina\.core\.ContainerBase\.\[Catalina\]\.\[localhost\]\.\[/host-manager\]\.handlers =.*|org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = java.util.logging.ConsoleHandler|' + +WORKDIR $CATALINA_HOME +USER tomcat diff --git a/tomcat-9-image/README.md b/tomcat-9-image/README.md new file mode 100644 index 000000000..80126d516 --- /dev/null +++ b/tomcat-9-image/README.md @@ -0,0 +1,72 @@ +# Tomcat 9 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 registry.suse.com/suse/tomcat:9 +``` +​ +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:/usr/share/tomcat/webapps:z \ + -p 8080:8080 registry.suse.com/suse/tomcat:9 +``` +​ + +## 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 \ + registry.suse.com/suse/tomcat:9 +``` +​ +The image ships with `CATALINA_HOME` set to `/usr/share/tomcat` and `CATALINA_BASE` set to +`/usr/share/tomcat`. +​ +​ +## Samples +​ +By default, the sample applications shipped with Tomcat are not installed in +the container image. You can obtain them by installing one of the following +packages: +- tomcat-webapps +- tomcat-admin-webapps +- tomcat-docs-webapp diff --git a/tomcat-9-image/_service b/tomcat-9-image/_service new file mode 100644 index 000000000..1706508bb --- /dev/null +++ b/tomcat-9-image/_service @@ -0,0 +1,15 @@ + + + + + Dockerfile + %%tomcat_version%% + tomcat + + + Dockerfile + %%tomcat_minor%% + tomcat + minor + + \ No newline at end of file diff --git a/tomcat-9-image/tomcat-9-image.changes b/tomcat-9-image/tomcat-9-image.changes new file mode 100644 index 000000000..13e69b462 --- /dev/null +++ b/tomcat-9-image/tomcat-9-image.changes @@ -0,0 +1,4 @@ +------------------------------------------------------------------- +Fri Mar 08 07:41:16 UTC 2024 - SUSE Update Bot + +- First version of the Apache Tomcat 9 BCI