Skip to content

Commit 0a8c45b

Browse files
authored
Merge pull request #3241 from SUSE/for-deploy-16.0
🤖: Update build recipes for 16.0
2 parents 382daa7 + cd18373 commit 0a8c45b

File tree

11 files changed

+322
-0
lines changed

11 files changed

+322
-0
lines changed

.obs/workflows.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,14 @@ staging_build:
121121
source_project: home:pushman:BCI:CR:16.0
122122
source_package: openjdk-21-image
123123
target_project: home:pushman:BCI:CR:16.0:Staging
124+
- branch_package:
125+
source_project: home:pushman:BCI:CR:16.0
126+
source_package: openjdk-25-devel-image
127+
target_project: home:pushman:BCI:CR:16.0:Staging
128+
- branch_package:
129+
source_project: home:pushman:BCI:CR:16.0
130+
source_package: openjdk-25-image
131+
target_project: home:pushman:BCI:CR:16.0:Staging
124132
- branch_package:
125133
source_project: home:pushman:BCI:CR:16.0
126134
source_package: pcp-image
@@ -284,6 +292,12 @@ refresh_devel_BCI:
284292
- trigger_services:
285293
project: devel:BCI:16.0
286294
package: openjdk-21-image
295+
- trigger_services:
296+
project: devel:BCI:16.0
297+
package: openjdk-25-devel-image
298+
- trigger_services:
299+
project: devel:BCI:16.0
300+
package: openjdk-25-image
287301
- trigger_services:
288302
project: devel:BCI:16.0
289303
package: pcp-image

openjdk-25-devel-image/Dockerfile

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# SPDX-License-Identifier: MIT
2+
3+
# Copyright (c) 2025 SUSE LLC
4+
5+
# All modifications and additions to the file contributed by third parties
6+
# remain the property of their copyright owners, unless otherwise agreed
7+
# upon.
8+
9+
# The content of THIS FILE IS AUTOGENERATED and should not be manually modified.
10+
# It is maintained by the BCI team and generated by
11+
# https://github.com/SUSE/BCI-dockerfile-generator
12+
13+
# Please submit bugfixes or comments via https://bugs.opensuse.org/
14+
# You can contact the BCI team via https://github.com/SUSE/bci/discussions
15+
16+
#!UseOBSRepositories
17+
#!ExclusiveArch: aarch64 x86_64 ppc64le s390x
18+
#!BuildTag: bci/openjdk-devel:%%java_version%%-%RELEASE%
19+
#!BuildTag: bci/openjdk-devel:%%java_version%%
20+
#!BuildTag: bci/openjdk-devel:25
21+
#!BuildTag: bci/openjdk-devel:latest
22+
#!BuildName: bci-openjdk-devel-25
23+
#!BuildVersion: 16.0.25
24+
FROM bci/openjdk:25
25+
26+
RUN set -euo pipefail; \
27+
zypper -n install --no-recommends java-25-openjdk-devel maven
28+
29+
# cleanup logs and temporary files
30+
RUN set -euo pipefail; zypper -n clean -a; \
31+
rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}; \
32+
rm -rf {/target,}/run/*; \
33+
rm -f {/target,}/etc/{shadow-,group-,passwd-,.pwd.lock}; \
34+
rm -f {/target,}/usr/lib/sysimage/rpm/.rpm.lock; \
35+
rm -f {/target,}/var/cache/ldconfig/aux-cache; \
36+
command -v zypper >/dev/null 2>&1 || rm -f /var/lib/zypp/AutoInstalled
37+
38+
# set the day of last password change to empty
39+
RUN set -euo pipefail; sed -i 's/^\([^:]*:[^:]*:\)[^:]*\(:.*\)$/\1\2/' /etc/shadow
40+
41+
# Define labels according to https://en.opensuse.org/Building_derived_containers
42+
# labelprefix=com.suse.bci.openjdk.devel
43+
LABEL org.opencontainers.image.authors="https://github.com/SUSE/bci/discussions"
44+
LABEL org.opencontainers.image.title="SUSE Linux BCI OpenJDK 25 development"
45+
LABEL org.opencontainers.image.description="OpenJDK 25 development container based on the SUSE Linux Base Container Image."
46+
LABEL org.opencontainers.image.version="%%java_version%%"
47+
LABEL org.opencontainers.image.url="https://www.suse.com/products/base-container-images/"
48+
LABEL org.opencontainers.image.created="%BUILDTIME%"
49+
LABEL org.opencontainers.image.vendor="SUSE LLC"
50+
LABEL org.opencontainers.image.source="%SOURCEURL%"
51+
LABEL org.opencontainers.image.ref.name="%%java_version%%-%RELEASE%"
52+
LABEL org.opensuse.reference="registry.suse.com/bci/openjdk-devel:%%java_version%%-%RELEASE%"
53+
LABEL org.openbuildservice.disturl="%DISTURL%"
54+
LABEL com.suse.supportlevel="l3"
55+
LABEL com.suse.eula="sle-bci"
56+
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle#suse-linux-enterprise-server-16"
57+
LABEL com.suse.release-stage="released"
58+
# endlabelprefix
59+
LABEL io.artifacthub.package.readme-url="%SOURCEURL_WITH(README.md)%"
60+
ENV JAVA_BINDIR="/usr/lib64/jvm/java-25-openjdk-25/bin"
61+
ENV JAVA_HOME="/usr/lib64/jvm/java-25-openjdk-25"
62+
ENV JAVA_ROOT="/usr/lib64/jvm/java-25-openjdk-25"
63+
ENV JAVA_VERSION="25"
64+
RUN set -euo pipefail; [ -d $JAVA_HOME ]; [ -d $JAVA_BINDIR ]; [ -f "$JAVA_BINDIR/java" ] && [ -x "$JAVA_BINDIR/java" ]

openjdk-25-devel-image/README.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# OpenJDK 25 development container image
2+
3+
![Redistributable](https://img.shields.io/badge/Redistributable-Yes-green)
4+
[![SLSA](https://img.shields.io/badge/SLSA_(v0.1)-Level_4-Green)](https://documentation.suse.com/sbp/security/html/SBP-SLSA4/)
5+
[![Provenance: Available](https://img.shields.io/badge/Provenance-Available-Green)](https://documentation.suse.com/container/all/html/Container-guide/index.html#container-verify)
6+
7+
## Description
8+
9+
[OpenJDK](https://openjdk.org/) (Open Java Development Kit) is a free and open source implementation of the Java Platform, Standard Edition (Java SE). OpenJDK is the official reference implementation of Java SE since version 7.
10+
11+
The OpenJDK development image is intended to be used as a build environment. For runtime, use the OpenJDK runtime image.
12+
13+
## Usage
14+
15+
To compile and deploy an application, copy the sources and build the binary:
16+
17+
```Dockerfile
18+
# Build the application using the OpenJDK development image
19+
FROM registry.suse.com/bci/openjdk-devel:25 as build
20+
21+
WORKDIR /app
22+
23+
COPY . ./
24+
25+
RUN javac Hello.java
26+
27+
# Bundle the application into OpenJDK runtime image
28+
FROM registry.suse.com/bci/openjdk:25
29+
30+
WORKDIR /app
31+
32+
COPY --from=build /app/Hello.class /app
33+
34+
CMD ["java", "Hello"]
35+
```
36+
37+
Build and run the container image:
38+
39+
```ShellSession
40+
$ podman build -t my-java-app .
41+
$ podman run -it --rm my-java-app
42+
```
43+
44+
There are situations, where you don't want to run an application inside a container.
45+
46+
To compile the application, without running it inside a container instance, use the following command:
47+
48+
```ShellSession
49+
$ podman run --rm -v "$PWD":/app:Z -w /app registry.suse.com/bci/openjdk-devel:25 javac Hello.java
50+
```
51+
52+
## Additional tools
53+
54+
The OpenJDK 25 development image includes [Git](https://git-scm.com/) and [Apache Maven](https://maven.apache.org/). [Apache Ant](https://ant.apache.org/) is available in the repositories.
55+
56+
## Licensing
57+
58+
`SPDX-License-Identifier: MIT`
59+
60+
This documentation and the build recipe are licensed as MIT.
61+
The container itself contains various software components under various open source licenses listed in the associated
62+
Software Bill of Materials (SBOM).
63+
64+
This image is based on [SLE BCI](https://opensource.suse.com/bci/), a stable and redistributable foundation for software innovation. SLE BCI is enterprise-ready, and it comes with an option for support.
65+
66+
See the [SLE BCI EULA](https://www.suse.com/licensing/eula/#bci) for further information.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<constraints>
2+
<hardware>
3+
<disk>
4+
<size unit="G">6</size>
5+
</disk>
6+
</hardware>
7+
</constraints>

openjdk-25-devel-image/_service

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<services>
2+
<service mode="buildtime" name="docker_label_helper"/>
3+
<service mode="buildtime" name="kiwi_metainfo_helper"/>
4+
<service mode="buildtime" name="replace_using_package_version">
5+
<param name="file">Dockerfile</param>
6+
<param name="regex">%%java_version%%</param>
7+
<param name="package">java-25-openjdk-devel</param>
8+
</service>
9+
</services>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-------------------------------------------------------------------
2+
Sat Dec 13 20:08:43 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
3+
4+
- First version of the OpenJDK 25 development BCI

openjdk-25-image/Dockerfile

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# SPDX-License-Identifier: MIT
2+
3+
# Copyright (c) 2025 SUSE LLC
4+
5+
# All modifications and additions to the file contributed by third parties
6+
# remain the property of their copyright owners, unless otherwise agreed
7+
# upon.
8+
9+
# The content of THIS FILE IS AUTOGENERATED and should not be manually modified.
10+
# It is maintained by the BCI team and generated by
11+
# https://github.com/SUSE/BCI-dockerfile-generator
12+
13+
# Please submit bugfixes or comments via https://bugs.opensuse.org/
14+
# You can contact the BCI team via https://github.com/SUSE/bci/discussions
15+
16+
#!UseOBSRepositories
17+
#!ExclusiveArch: aarch64 x86_64 ppc64le s390x
18+
#!BuildTag: bci/openjdk:%%java_version%%-%RELEASE%
19+
#!BuildTag: bci/openjdk:%%java_version%%
20+
#!BuildTag: bci/openjdk:25
21+
#!BuildTag: bci/openjdk:latest
22+
#!BuildName: bci-openjdk-25
23+
#!BuildVersion: 16.0.25
24+
FROM registry.suse.com/bci/bci-base:16.0
25+
26+
RUN set -euo pipefail; \
27+
zypper -n install --no-recommends java-25-openjdk mozilla-nss-sysinit curl findutils gawk git-core procps util-linux
28+
29+
# cleanup logs and temporary files
30+
RUN set -euo pipefail; zypper -n clean -a; \
31+
rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}; \
32+
rm -rf {/target,}/run/*; \
33+
rm -f {/target,}/etc/{shadow-,group-,passwd-,.pwd.lock}; \
34+
rm -f {/target,}/usr/lib/sysimage/rpm/.rpm.lock; \
35+
rm -f {/target,}/var/cache/ldconfig/aux-cache; \
36+
command -v zypper >/dev/null 2>&1 || rm -f /var/lib/zypp/AutoInstalled
37+
38+
# set the day of last password change to empty
39+
RUN set -euo pipefail; sed -i 's/^\([^:]*:[^:]*:\)[^:]*\(:.*\)$/\1\2/' /etc/shadow
40+
41+
# Define labels according to https://en.opensuse.org/Building_derived_containers
42+
# labelprefix=com.suse.bci.openjdk
43+
LABEL org.opencontainers.image.authors="https://github.com/SUSE/bci/discussions"
44+
LABEL org.opencontainers.image.title="SUSE Linux BCI OpenJDK 25 runtime"
45+
LABEL org.opencontainers.image.description="OpenJDK 25 runtime container based on the SUSE Linux Base Container Image."
46+
LABEL org.opencontainers.image.version="%%java_version%%"
47+
LABEL org.opencontainers.image.url="https://www.suse.com/products/base-container-images/"
48+
LABEL org.opencontainers.image.created="%BUILDTIME%"
49+
LABEL org.opencontainers.image.vendor="SUSE LLC"
50+
LABEL org.opencontainers.image.source="%SOURCEURL%"
51+
LABEL org.opencontainers.image.ref.name="%%java_version%%-%RELEASE%"
52+
LABEL org.opensuse.reference="registry.suse.com/bci/openjdk:%%java_version%%-%RELEASE%"
53+
LABEL org.openbuildservice.disturl="%DISTURL%"
54+
LABEL com.suse.supportlevel="l3"
55+
LABEL com.suse.eula="sle-bci"
56+
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle#suse-linux-enterprise-server-16"
57+
LABEL com.suse.release-stage="released"
58+
# endlabelprefix
59+
LABEL org.opencontainers.image.base.name="%BASE_REFNAME%"
60+
LABEL org.opencontainers.image.base.digest="%BASE_DIGEST%"
61+
LABEL io.artifacthub.package.readme-url="%SOURCEURL_WITH(README.md)%"
62+
ENV JAVA_BINDIR="/usr/lib64/jvm/java-25-openjdk-25/bin"
63+
ENV JAVA_HOME="/usr/lib64/jvm/java-25-openjdk-25"
64+
ENV JAVA_ROOT="/usr/lib64/jvm/java-25-openjdk-25"
65+
ENV JAVA_VERSION="25"
66+
RUN set -euo pipefail; [ -d $JAVA_HOME ]; [ -d $JAVA_BINDIR ]; [ -f "$JAVA_BINDIR/java" ] && [ -x "$JAVA_BINDIR/java" ]

openjdk-25-image/README.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# OpenJDK 25 runtime container image
2+
3+
![Redistributable](https://img.shields.io/badge/Redistributable-Yes-green)
4+
[![SLSA](https://img.shields.io/badge/SLSA_(v0.1)-Level_4-Green)](https://documentation.suse.com/sbp/security/html/SBP-SLSA4/)
5+
[![Provenance: Available](https://img.shields.io/badge/Provenance-Available-Green)](https://documentation.suse.com/container/all/html/Container-guide/index.html#container-verify)
6+
7+
## Description
8+
9+
[OpenJDK](https://openjdk.org/) (Open Java Development Kit) is a free and open source implementation of the Java Platform, Standard Edition (Java SE). OpenJDK is the official reference implementation of Java SE since version 7.
10+
11+
The OpenJDK runtime image is intended to be used as a runtime environment. For development, use the OpenJDK development image.
12+
13+
## Usage
14+
15+
To run a jar or war application inside a container instance, use the following command:
16+
17+
```ShellSession
18+
$ podman run --rm -v "$PWD":/app:Z -w /app registry.suse.com/bci/openjdk:25 java -jar hello.jar
19+
```
20+
21+
Or create a new contained based on OpenJDK 25 runtime image:
22+
23+
```Dockerfile
24+
FROM registry.suse.com/bci/openjdk:25
25+
26+
WORKDIR /app
27+
28+
COPY . ./
29+
30+
CMD ["java", "-jar", "hello.jar"]
31+
```
32+
33+
To compile and deploy an application, copy the sources and build the application:
34+
35+
```Dockerfile
36+
# Build the application using the OpenJDK development image
37+
FROM registry.suse.com/bci/openjdk-devel:25 as build
38+
39+
WORKDIR /app
40+
41+
COPY . ./
42+
43+
RUN javac Hello.java
44+
45+
# Bundle the application into OpenJDK runtime image
46+
FROM registry.suse.com/bci/openjdk:25
47+
48+
WORKDIR /app
49+
50+
COPY --from=build /app/Hello.class /app
51+
52+
CMD ["java", "Hello"]
53+
```
54+
55+
Build and run the container image:
56+
57+
```ShellSession
58+
$ podman build -t my-java-app .
59+
$ podman run -it --rm my-java-app
60+
```
61+
62+
## Licensing
63+
64+
`SPDX-License-Identifier: MIT`
65+
66+
This documentation and the build recipe are licensed as MIT.
67+
The container itself contains various software components under various open source licenses listed in the associated
68+
Software Bill of Materials (SBOM).
69+
70+
This image is based on [SLE BCI](https://opensource.suse.com/bci/), a stable and redistributable foundation for software innovation. SLE BCI is enterprise-ready, and it comes with an option for support.
71+
72+
See the [SLE BCI EULA](https://www.suse.com/licensing/eula/#bci) for further information.

openjdk-25-image/_constraints

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<constraints>
2+
<hardware>
3+
<disk>
4+
<size unit="G">6</size>
5+
</disk>
6+
</hardware>
7+
</constraints>

openjdk-25-image/_service

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<services>
2+
<service mode="buildtime" name="docker_label_helper"/>
3+
<service mode="buildtime" name="kiwi_metainfo_helper"/>
4+
<service mode="buildtime" name="replace_using_package_version">
5+
<param name="file">Dockerfile</param>
6+
<param name="regex">%%java_version%%</param>
7+
<param name="package">java-25-openjdk</param>
8+
</service>
9+
</services>

0 commit comments

Comments
 (0)