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