Dirk Mueller
8de571e5c4
OBS-URL: https://build.opensuse.org/package/show/devel:BCI:Tumbleweed/openjdk-23-devel-image?expand=0&rev=1
70 lines
2.1 KiB
Markdown
70 lines
2.1 KiB
Markdown
# OpenJDK 23 development container image
|
|
|
|
![Redistributable](https://img.shields.io/badge/Redistributable-Yes-green)
|
|
|
|
## Description
|
|
|
|
[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.
|
|
|
|
The OpenJDK development image is intended to be used as a build environment. For runtime, use the OpenJDK runtime image.
|
|
|
|
## Usage
|
|
|
|
The default command for the image is the Java Shell tool (JShell).
|
|
|
|
```ShellSession
|
|
$ podman run -it --rm registry.opensuse.org/opensuse/bci/openjdk-devel:23
|
|
jshell> /help
|
|
```
|
|
|
|
To compile and deploy an application, copy the sources and build the binary:
|
|
|
|
```Dockerfile
|
|
# Build the application using the OpenJDK development image
|
|
FROM registry.opensuse.org/opensuse/bci/openjdk-devel:23 as build
|
|
|
|
WORKDIR /app
|
|
|
|
COPY . ./
|
|
|
|
RUN javac Hello.java
|
|
|
|
# Bundle the application into OpenJDK runtime image
|
|
FROM registry.opensuse.org/opensuse/bci/openjdk:23
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=build /app/Hello.class /app
|
|
|
|
CMD ["java", "Hello"]
|
|
```
|
|
|
|
Build and run the container image:
|
|
|
|
```ShellSession
|
|
$ podman build -t my-java-app .
|
|
$ podman run -it --rm my-java-app
|
|
```
|
|
|
|
There are situations, where you don't want to run an application inside a container.
|
|
|
|
To compile the application, without running it inside a container instance, use the following command:
|
|
|
|
```ShellSession
|
|
$ podman run --rm -v "$PWD":/app:Z -w /app registry.opensuse.org/opensuse/bci/openjdk-devel:23 javac Hello.java
|
|
```
|
|
|
|
## Additional tools
|
|
|
|
The OpenJDK 23 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.
|
|
|
|
## Licensing
|
|
|
|
`SPDX-License-Identifier: MIT`
|
|
|
|
This documentation and the build recipe are 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](https://get.opensuse.org/tumbleweed/).
|