Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 54 additions & 4 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
name: "Docker"

on:
workflow_dispatch:

push:
branches: ["master"]

Expand All @@ -11,14 +13,45 @@ permissions:
contents: read

jobs:
test:
name: "Test"
runs-on: "ubuntu-latest"

strategy:
matrix:
include:
- item: jdk8
- item: mvn
- item: openjdk-mvn
- item: openjdk8
fail-fast: false

steps:
- name: "Checkout"
uses: actions/checkout@v4

- name: "Set up Docker Buildx"
uses: docker/setup-buildx-action@v3

- name: "Build image"
uses: docker/build-push-action@v6
with:
context: "${{ matrix.item }}"
load: true
tags: "dockette/${{ matrix.item }}:latest"

- name: "Test image"
run: "make test-${{ matrix.item }}"

build:
name: "Build"
needs: ["test"]
uses: dockette/.github/.github/workflows/docker.yml@master
secrets: inherit
with:
image: "dockette/${{ matrix.item }}"
tag: "latest"
context: "${{ matrix.item }}"
image: "dockette/${{ matrix.item }}"
tag: "latest"
context: "${{ matrix.item }}"
strategy:
matrix:
include:
Expand All @@ -27,4 +60,21 @@ jobs:
- item: openjdk-mvn
- item: openjdk8

fail-fast: false
fail-fast: false

docs:
name: "Docs"
runs-on: "ubuntu-latest"
needs: ["build"]
if: github.ref == 'refs/heads/master'

steps:
- name: "Checkout"
uses: actions/checkout@v4

- name: "Update Docker Hub description"
uses: peter-evans/dockerhub-description@v5
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
repository: "dockette/java"
36 changes: 36 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# AGENTS.md

## Project

Legacy Dockette Java image collection for Java 8 and Maven 3 workloads. Images are based on maintained Eclipse Temurin Alpine Java 8 images and are kept for compatibility, not as current Java runtime images.

## Images

- Published images are `dockette/jdk8`, `dockette/openjdk8`, `dockette/mvn`, and `dockette/openjdk-mvn`.
- Build contexts are `jdk8`, `openjdk8`, `mvn`, and `openjdk-mvn`.
- `jdk8` and `mvn` use Eclipse Temurin OpenJDK 8 instead of legacy Oracle downloads.
- `openjdk8` and `openjdk-mvn` use Eclipse Temurin OpenJDK 8 instead of pinned Alpine OpenJDK packages.
- `mvn` and `openjdk-mvn` include Maven `3.5.4` and `settings-docker.xml`.
- GitHub Actions builds and publishes each context with the `latest` tag.

## Commands

- `make build` builds all four image contexts.
- `make build-jdk8`, `make build-mvn`, `make build-openjdk-mvn`, and `make build-openjdk8` build individual images.
- `make test` runs `java -version` and, for Maven images, `mvn -version`.
- `make run` defaults to `run-openjdk8`.
- Override `DOCKER_IMAGE_PREFIX` or `DOCKER_TAG` for local image names and tags.

## Testing

- Use `make -n build test run` to dry-run the aggregate commands before changing build logic.
- Run the relevant `make test-*` target after building one image context.
- Keep workflow matrix items in sync with the `IMAGES` Makefile variable and repository directories.

## Guidelines

- Keep Dockerfiles, `Makefile`, README usage examples, and `.github/workflows/docker.yml` matrix entries aligned.
- Prefer `DOCKER_*` names for Docker-related Makefile variables.
- Place `.PHONY: <target>` directly above each Makefile target.
- Treat version bumps as legacy compatibility changes and update README version notes when image contents change.
- Do not introduce unrelated formatting or structural changes.
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
62 changes: 62 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
DOCKER_IMAGE_PREFIX?=dockette
DOCKER_TAG?=latest
IMAGES := jdk8 mvn openjdk-mvn openjdk8


.PHONY: build
build: $(addprefix build-,$(IMAGES))

.PHONY: test
test: $(addprefix test-,$(IMAGES))
.PHONY: run
run: run-openjdk8

.PHONY: build-jdk8
build-jdk8:
docker build -t ${DOCKER_IMAGE_PREFIX}/jdk8:${DOCKER_TAG} jdk8

.PHONY: build-mvn
build-mvn:
docker build -t ${DOCKER_IMAGE_PREFIX}/mvn:${DOCKER_TAG} mvn

.PHONY: build-openjdk-mvn
build-openjdk-mvn:
docker build -t ${DOCKER_IMAGE_PREFIX}/openjdk-mvn:${DOCKER_TAG} openjdk-mvn

.PHONY: build-openjdk8
build-openjdk8:
docker build -t ${DOCKER_IMAGE_PREFIX}/openjdk8:${DOCKER_TAG} openjdk8

.PHONY: test-jdk8
test-jdk8:
docker run --rm ${DOCKER_IMAGE_PREFIX}/jdk8:${DOCKER_TAG} java -version

.PHONY: test-mvn
test-mvn:
docker run --rm ${DOCKER_IMAGE_PREFIX}/mvn:${DOCKER_TAG} java -version
docker run --rm ${DOCKER_IMAGE_PREFIX}/mvn:${DOCKER_TAG} mvn -version

.PHONY: test-openjdk-mvn
test-openjdk-mvn:
docker run --rm ${DOCKER_IMAGE_PREFIX}/openjdk-mvn:${DOCKER_TAG} java -version
docker run --rm ${DOCKER_IMAGE_PREFIX}/openjdk-mvn:${DOCKER_TAG} mvn -version

.PHONY: test-openjdk8
test-openjdk8:
docker run --rm ${DOCKER_IMAGE_PREFIX}/openjdk8:${DOCKER_TAG} java -version

.PHONY: run-jdk8
run-jdk8:
docker run --rm -it -v "$${PWD}:/data" ${DOCKER_IMAGE_PREFIX}/jdk8:${DOCKER_TAG} java -version

.PHONY: run-mvn
run-mvn:
docker run --rm -it -v "$${PWD}:/data" ${DOCKER_IMAGE_PREFIX}/mvn:${DOCKER_TAG}

.PHONY: run-openjdk-mvn
run-openjdk-mvn:
docker run --rm -it -v "$${PWD}:/data" ${DOCKER_IMAGE_PREFIX}/openjdk-mvn:${DOCKER_TAG}

.PHONY: run-openjdk8
run-openjdk8:
docker run --rm -it -v "$${PWD}:/data" ${DOCKER_IMAGE_PREFIX}/openjdk8:${DOCKER_TAG} java -version
64 changes: 37 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,56 +1,66 @@
# JAVA
<h1 align=center>Dockette / Java</h1>

Ready-to-use images for Java JDK 8 (OpenJDK) & Maven 3.
<p align=center>
<a href="https://github.com/dockette/java/actions"><img src="https://github.com/dockette/java/actions/workflows/docker.yml/badge.svg" alt="GitHub Actions"></a>
<a href="https://hub.docker.com/u/dockette"><img src="https://img.shields.io/badge/docker-images-2496ed?logo=docker&logoColor=white" alt="Docker Hub images"></a>
<a href="https://github.com/sponsors/f3l1x"><img src="https://img.shields.io/badge/sponsor-GitHub%20Sponsors-ea4aaa" alt="GitHub Sponsors"></a>
<a href="https://github.com/orgs/dockette/discussions"><img src="https://img.shields.io/badge/support-discussions-6f42c1" alt="Support/Discussions"></a>
</p>

-----

[![Docker Stars](https://img.shields.io/docker/stars/dockette/java.svg?style=flat)](https://hub.docker.com/r/dockette/java/)
[![Docker Pulls](https://img.shields.io/docker/pulls/dockette/java.svg?style=flat)](https://hub.docker.com/r/dockette/java/)
<p align=center>
Ready-to-use legacy images for Java 8, OpenJDK 8, and Maven 3.
</p>

## Discussion / Help

[![Join the chat](https://img.shields.io/gitter/room/dockette/dockette.svg?style=flat-square)](https://gitter.im/dockette/dockette?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-----

## Usage

### Oracle JDK 8
### JDK 8

> Java 1.8.0_131-b13
> Eclipse Temurin OpenJDK 8

This Oracle Java JDK 8 is based on Alpine linux (`dockette/alpine:3.8`).

[![Docker Stars](https://img.shields.io/docker/stars/dockette/jdk8.svg?style=flat)](https://hub.docker.com/r/dockette/jdk8/)
[![Docker Pulls](https://img.shields.io/docker/pulls/dockette/jdk8.svg?style=flat)](https://hub.docker.com/r/dockette/jdk8/)
This Java JDK 8 image is based on Eclipse Temurin Alpine.
Docker Hub: <https://hub.docker.com/r/dockette/jdk8>

```
docker run -v /path/to/site:/srv dockette/jdk8
docker run -v /path/to/site:/data dockette/jdk8
```

### OpenJDK 8

> OpenJDK 8.171.11-r0

This OpenJDK 8 is based on Alpine linux (`dockette/alpine:3.8`).
> Eclipse Temurin OpenJDK 8

[![Docker Stars](https://img.shields.io/docker/stars/dockette/openjdk8.svg?style=flat)](https://hub.docker.com/r/dockette/openjdk8/)
[![Docker Pulls](https://img.shields.io/docker/pulls/dockette/openjdk8.svg?style=flat)](https://hub.docker.com/r/dockette/openjdk8/)
This OpenJDK 8 image is based on Eclipse Temurin Alpine.
Docker Hub: <https://hub.docker.com/r/dockette/openjdk8>

```
docker run -v /path/to/site:/srv dockette/openjdk8
docker run -v /path/to/site:/data dockette/openjdk8
```

### Maven 3
### Maven 3

> Maven 3.5.4

This Maven 3 with Oracle Java JDK 8 is based on Alpine linux (`dockette/alpine:3.8`).
This Maven 3 with Java JDK 8 image is based on Eclipse Temurin Alpine.
Docker Hub: <https://hub.docker.com/r/dockette/mvn>

[![Docker Stars](https://img.shields.io/docker/stars/dockette/mvn.svg?style=flat)](https://hub.docker.com/r/dockette/mvn/)
[![Docker Pulls](https://img.shields.io/docker/pulls/dockette/mvn.svg?style=flat)](https://hub.docker.com/r/dockette/mvn/)
```
docker run -v /path/to/site:/data dockette/mvn
```

### OpenJDK 8 + Maven 3

This Maven 3 with OpenJDK 8 image is based on Eclipse Temurin Alpine.
Docker Hub: <https://hub.docker.com/r/dockette/openjdk-mvn>

```
docker run -v /path/to/site:/srv dockette/mvn
docker run -v /path/to/site:/data dockette/openjdk-mvn
```

## Legacy Support

These images target Java 8 and Maven 3.5.4. They are kept for legacy workloads and should not be treated as current Java runtime images.

## Maintenance

See [how to contribute](https://github.com/dockette/.github/blob/master/CONTRIBUTING.md) to this package. Consider to [support](https://github.com/sponsors/f3l1x) **f3l1x**. Thank you for using this package.
72 changes: 4 additions & 68 deletions jdk8/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,75 +1,11 @@
FROM dockette/alpine:3.8
FROM eclipse-temurin:8-jdk-alpine

MAINTAINER Milan Sulc <sulcmil@gmail.com>

ENV JAVA_VERSION=8 \
JAVA_UPDATE=181 \
JAVA_BUILD=13 \
JAVA_HOME="/usr/lib/jvm/default-jvm" \
LANG=C.UTF-8 \
GLIBC_VERSION=2.27-r0 \
ORACLE_AUTHORIZATION_KEY=96a7b8442fe848ef90c96a2fad6ed6d1
ENV LANG=C.UTF-8

# Based on offical @andreptb/Dockerfiles (thank you)

RUN apk upgrade --update && \
apk add --no-cache --virtual=build-dependencies libstdc++ curl ca-certificates unzip && \
for pkg in glibc-${GLIBC_VERSION} glibc-bin-${GLIBC_VERSION} glibc-i18n-${GLIBC_VERSION}; do curl -sSL https://github.com/andyshinn/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/${pkg}.apk -o /tmp/${pkg}.apk; done && \
apk add --allow-untrusted /tmp/*.apk && \
rm -v /tmp/*.apk && \
( /usr/glibc-compat/bin/localedef --force --inputfile POSIX --charmap UTF-8 C.UTF-8 || true ) && \
echo "export LANG=C.UTF-8" > /etc/profile.d/locale.sh && \
/usr/glibc-compat/sbin/ldconfig /lib /usr/glibc-compat/lib && \
echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf && \
curl -jksSLH "Cookie: oraclelicense=accept-securebackup-cookie" -o /tmp/java.tar.gz \
"http://download.oracle.com/otn-pub/java/jdk/${JAVA_VERSION}u${JAVA_UPDATE}-b${JAVA_BUILD}/${ORACLE_AUTHORIZATION_KEY}/jdk-${JAVA_VERSION}u${JAVA_UPDATE}-linux-x64.tar.gz" && \
curl -jksSLH "Cookie: oraclelicense=accept-securebackup-cookie" -o /tmp/jce_policy-${JAVA_VERSION}.zip \
"http://download.oracle.com/otn-pub/java/jce/${JAVA_VERSION}/jce_policy-${JAVA_VERSION}.zip" && \
gunzip /tmp/java.tar.gz && \
tar -C /tmp -xf /tmp/java.tar && \
mkdir -p "/usr/lib/jvm" && \
mv "/tmp/jdk1.${JAVA_VERSION}.0_${JAVA_UPDATE}" "/usr/lib/jvm/java-${JAVA_VERSION}-oracle" && \
ln -s "java-${JAVA_VERSION}-oracle" "$JAVA_HOME" && \
unzip -jo -d "$JAVA_HOME/jre/lib/security" "/tmp/jce_policy-${JAVA_VERSION}.zip" && \
ln -s "$JAVA_HOME/bin/"* "/usr/bin/" && \
apk del glibc-i18n && \
rm -rf "$JAVA_HOME/"*src.zip \
"$JAVA_HOME/lib/missioncontrol" \
"$JAVA_HOME/lib/visualvm" \
"$JAVA_HOME/lib/"*javafx* \
"$JAVA_HOME/jre/lib/ext/jfxrt.jar" \
"$JAVA_HOME/jre/bin/javaws" \
"$JAVA_HOME/jre/lib/javaws.jar" \
"$JAVA_HOME/jre/lib/desktop" \
"$JAVA_HOME/jre/plugin" \
"$JAVA_HOME/jre/lib/"deploy* \
"$JAVA_HOME/jre/lib/"*javafx* \
"$JAVA_HOME/jre/lib/"*jfx* \
"$JAVA_HOME/jre/lib/amd64/libdecora_sse.so" \
"$JAVA_HOME/jre/lib/amd64/"libprism_*.so \
"$JAVA_HOME/jre/lib/amd64/libfxplugins.so" \
"$JAVA_HOME/jre/lib/amd64/libglass.so" \
"$JAVA_HOME/jre/lib/amd64/libgstreamer-lite.so" \
"$JAVA_HOME/jre/lib/amd64/"libjavafx*.so \
"$JAVA_HOME/jre/lib/amd64/"libjfx*.so \
"$JAVA_HOME/jre/bin/jjs" \
"$JAVA_HOME/jre/bin/keytool" \
"$JAVA_HOME/jre/bin/orbd" \
"$JAVA_HOME/jre/bin/pack200" \
"$JAVA_HOME/jre/bin/policytool" \
"$JAVA_HOME/jre/bin/rmid" \
"$JAVA_HOME/jre/bin/rmiregistry" \
"$JAVA_HOME/jre/bin/servertool" \
"$JAVA_HOME/jre/bin/tnameserv" \
"$JAVA_HOME/jre/bin/unpack200" \
"$JAVA_HOME/jre/lib/ext/nashorn.jar" \
"$JAVA_HOME/jre/lib/jfr.jar" \
"$JAVA_HOME/jre/lib/jfr" \
"$JAVA_HOME/jre/lib/oblique-fonts" && \
# CLEANUP ==================================================================
apk del build-dependencies && \
rm -rf /tmp/* /var/cache/apk/*
ENV JAVA_HOME=/opt/java/openjdk

WORKDIR /data

CMD ["mvn"]
CMD ["java", "-version"]
Loading