From d906a4fec3709209afb9236e81b55f9dd2388bb5 Mon Sep 17 00:00:00 2001 From: Oh My Felix Date: Fri, 29 May 2026 18:12:49 +0000 Subject: [PATCH 1/5] CI: add rollout baseline --- .github/workflows/docker.yml | 58 +++++++++++++++++++++++++++++++++--- Makefile | 45 ++++++++++++++++++++++++++++ README.md | 54 +++++++++++++++++++-------------- 3 files changed, 131 insertions(+), 26 deletions(-) create mode 100644 Makefile diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index d35d12d..64c1246 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -1,6 +1,8 @@ name: "Docker" on: + workflow_dispatch: + push: branches: ["master"] @@ -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: @@ -27,4 +60,21 @@ jobs: - item: openjdk-mvn - item: openjdk8 - fail-fast: false \ No newline at end of file + 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" diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e538b77 --- /dev/null +++ b/Makefile @@ -0,0 +1,45 @@ +IMAGE_PREFIX ?= dockette +IMAGES := jdk8 mvn openjdk-mvn openjdk8 + +.PHONY: build test run $(addprefix build-,$(IMAGES)) $(addprefix test-,$(IMAGES)) $(addprefix run-,$(IMAGES)) + +build: $(addprefix build-,$(IMAGES)) + +test: $(addprefix test-,$(IMAGES)) +run: run-openjdk8 + +build-jdk8: + docker build -t $(IMAGE_PREFIX)/jdk8:latest jdk8 + +build-mvn: + docker build -t $(IMAGE_PREFIX)/mvn:latest mvn + +build-openjdk-mvn: + docker build -t $(IMAGE_PREFIX)/openjdk-mvn:latest openjdk-mvn + +build-openjdk8: + docker build -t $(IMAGE_PREFIX)/openjdk8:latest openjdk8 + +test-jdk8: + docker run --rm $(IMAGE_PREFIX)/jdk8:latest java -version + +test-mvn: + docker run --rm $(IMAGE_PREFIX)/mvn:latest sh -lc 'java -version && mvn -version' + +test-openjdk-mvn: + docker run --rm $(IMAGE_PREFIX)/openjdk-mvn:latest sh -lc 'java -version && mvn -version' + +test-openjdk8: + docker run --rm $(IMAGE_PREFIX)/openjdk8:latest java -version + +run-jdk8: + docker run --rm -it -v $(PWD):/data $(IMAGE_PREFIX)/jdk8:latest java -version + +run-mvn: + docker run --rm -it -v $(PWD):/data $(IMAGE_PREFIX)/mvn:latest + +run-openjdk-mvn: + docker run --rm -it -v $(PWD):/data $(IMAGE_PREFIX)/openjdk-mvn:latest + +run-openjdk8: + docker run --rm -it -v $(PWD):/data $(IMAGE_PREFIX)/openjdk8:latest java -version diff --git a/README.md b/README.md index 02b255f..faa6329 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,17 @@ -# JAVA +

Dockette / Java

-Ready-to-use images for Java JDK 8 (OpenJDK) & Maven 3. +

+ GitHub Actions + Docker Hub pulls + GitHub Sponsors + Support/Discussions +

------ - -[![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/) +

+ Ready-to-use legacy images for Java JDK 8 (OpenJDK) and Maven 3. +

-## 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 @@ -17,10 +19,8 @@ Ready-to-use images for Java JDK 8 (OpenJDK) & Maven 3. > Java 1.8.0_131-b13 -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 Oracle Java JDK 8 image is based on Alpine linux (`dockette/alpine:3.8`). +Docker Hub: ``` docker run -v /path/to/site:/srv dockette/jdk8 @@ -30,27 +30,37 @@ docker run -v /path/to/site:/srv dockette/jdk8 > OpenJDK 8.171.11-r0 -This OpenJDK 8 is based on Alpine linux (`dockette/alpine:3.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 Alpine linux (`dockette/alpine:3.8`). +Docker Hub: ``` docker run -v /path/to/site:/srv 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`). - -[![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/) +This Maven 3 with Oracle Java JDK 8 image is based on Alpine linux (`dockette/alpine:3.8`). +Docker Hub: ``` docker run -v /path/to/site:/srv dockette/mvn ``` +### OpenJDK 8 + Maven 3 + +This Maven 3 with OpenJDK 8 image is based on Alpine linux (`dockette/alpine:3.8`). +Docker Hub: + +``` +docker run -v /path/to/site:/srv dockette/openjdk-mvn +``` + +## Legacy Support + +These images target Java 8, Maven 3.5.4, and Alpine 3.8. 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. From 1d8a1f6fabc3af7c78a598c503d238c2c8e00dba Mon Sep 17 00:00:00 2001 From: Oh My Felix Date: Wed, 3 Jun 2026 14:06:06 +0000 Subject: [PATCH 2/5] chore: align Makefile Docker variables --- Makefile | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index e538b77..0d4171c 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ -IMAGE_PREFIX ?= dockette +DOCKER_IMAGE_PREFIX?=dockette +DOCKER_TAG?=latest IMAGES := jdk8 mvn openjdk-mvn openjdk8 .PHONY: build test run $(addprefix build-,$(IMAGES)) $(addprefix test-,$(IMAGES)) $(addprefix run-,$(IMAGES)) @@ -9,37 +10,39 @@ test: $(addprefix test-,$(IMAGES)) run: run-openjdk8 build-jdk8: - docker build -t $(IMAGE_PREFIX)/jdk8:latest jdk8 + docker build -t ${DOCKER_IMAGE_PREFIX}/jdk8:${DOCKER_TAG} jdk8 build-mvn: - docker build -t $(IMAGE_PREFIX)/mvn:latest mvn + docker build -t ${DOCKER_IMAGE_PREFIX}/mvn:${DOCKER_TAG} mvn build-openjdk-mvn: - docker build -t $(IMAGE_PREFIX)/openjdk-mvn:latest openjdk-mvn + docker build -t ${DOCKER_IMAGE_PREFIX}/openjdk-mvn:${DOCKER_TAG} openjdk-mvn build-openjdk8: - docker build -t $(IMAGE_PREFIX)/openjdk8:latest openjdk8 + docker build -t ${DOCKER_IMAGE_PREFIX}/openjdk8:${DOCKER_TAG} openjdk8 test-jdk8: - docker run --rm $(IMAGE_PREFIX)/jdk8:latest java -version + docker run --rm ${DOCKER_IMAGE_PREFIX}/jdk8:${DOCKER_TAG} java -version test-mvn: - docker run --rm $(IMAGE_PREFIX)/mvn:latest sh -lc 'java -version && mvn -version' + docker run --rm ${DOCKER_IMAGE_PREFIX}/mvn:${DOCKER_TAG} java -version + docker run --rm ${DOCKER_IMAGE_PREFIX}/mvn:${DOCKER_TAG} mvn -version test-openjdk-mvn: - docker run --rm $(IMAGE_PREFIX)/openjdk-mvn:latest sh -lc 'java -version && mvn -version' + docker run --rm ${DOCKER_IMAGE_PREFIX}/openjdk-mvn:${DOCKER_TAG} java -version + docker run --rm ${DOCKER_IMAGE_PREFIX}/openjdk-mvn:${DOCKER_TAG} mvn -version test-openjdk8: - docker run --rm $(IMAGE_PREFIX)/openjdk8:latest java -version + docker run --rm ${DOCKER_IMAGE_PREFIX}/openjdk8:${DOCKER_TAG} java -version run-jdk8: - docker run --rm -it -v $(PWD):/data $(IMAGE_PREFIX)/jdk8:latest java -version + docker run --rm -it -v "$${PWD}:/data" ${DOCKER_IMAGE_PREFIX}/jdk8:${DOCKER_TAG} java -version run-mvn: - docker run --rm -it -v $(PWD):/data $(IMAGE_PREFIX)/mvn:latest + docker run --rm -it -v "$${PWD}:/data" ${DOCKER_IMAGE_PREFIX}/mvn:${DOCKER_TAG} run-openjdk-mvn: - docker run --rm -it -v $(PWD):/data $(IMAGE_PREFIX)/openjdk-mvn:latest + docker run --rm -it -v "$${PWD}:/data" ${DOCKER_IMAGE_PREFIX}/openjdk-mvn:${DOCKER_TAG} run-openjdk8: - docker run --rm -it -v $(PWD):/data $(IMAGE_PREFIX)/openjdk8:latest java -version + docker run --rm -it -v "$${PWD}:/data" ${DOCKER_IMAGE_PREFIX}/openjdk8:${DOCKER_TAG} java -version From f107dbfa524cb06143d552279e2aa85a6cb65566 Mon Sep 17 00:00:00 2001 From: Oh My Felix Date: Wed, 3 Jun 2026 14:19:42 +0000 Subject: [PATCH 3/5] chore: place PHONY declarations above targets --- Makefile | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 0d4171c..528ddbf 100644 --- a/Makefile +++ b/Makefile @@ -2,47 +2,61 @@ DOCKER_IMAGE_PREFIX?=dockette DOCKER_TAG?=latest IMAGES := jdk8 mvn openjdk-mvn openjdk8 -.PHONY: build test run $(addprefix build-,$(IMAGES)) $(addprefix test-,$(IMAGES)) $(addprefix run-,$(IMAGES)) +.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 From 8518d0de8f0e191440db3851f44b56dd5f2f9801 Mon Sep 17 00:00:00 2001 From: Oh My Felix Date: Wed, 3 Jun 2026 14:23:19 +0000 Subject: [PATCH 4/5] chore: add AI agent instructions --- AGENTS.md | 19 +++++++++++++++++++ CLAUDE.md | 1 + 2 files changed, 20 insertions(+) create mode 100644 AGENTS.md create mode 100644 CLAUDE.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..e84c2d7 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,19 @@ +# AGENTS.md + +## Project + +Docker image repository in the Dockette organization. + +## Commands + +- `make build` builds the default Docker image. +- `make test` runs the repository smoke tests. +- `make run` starts the image for local use. + +## Guidelines + +- Keep Dockerfiles, `Makefile`, README, and GitHub Actions workflow changes aligned. +- Prefer `DOCKER_*` names for Docker-related Makefile variables. +- Place `.PHONY: ` directly above each Makefile target. +- Keep README badges and maintenance sections consistent with other Dockette image repos. +- Do not introduce unrelated formatting or structural changes. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..43c994c --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md From bffdc3990a055499a3e318ebd527a6fd2a85116d Mon Sep 17 00:00:00 2001 From: Oh My Felix Date: Wed, 3 Jun 2026 14:29:22 +0000 Subject: [PATCH 5/5] chore: specialize AI agent instructions --- AGENTS.md | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index e84c2d7..611fa7e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,18 +2,35 @@ ## Project -Docker image repository in the Dockette organization. +Legacy Dockette Java image collection for Java 8 and Maven 3 workloads. Images are based on `dockette/alpine:3.8` 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` install Oracle JDK 8 with glibc compatibility. +- `openjdk8` and `openjdk-mvn` install Alpine OpenJDK 8 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 the default Docker image. -- `make test` runs the repository smoke tests. -- `make run` starts the image for local use. +- `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, and GitHub Actions workflow changes aligned. +- Keep Dockerfiles, `Makefile`, README usage examples, and `.github/workflows/docker.yml` matrix entries aligned. - Prefer `DOCKER_*` names for Docker-related Makefile variables. - Place `.PHONY: ` directly above each Makefile target. -- Keep README badges and maintenance sections consistent with other Dockette image repos. +- Treat version bumps as legacy compatibility changes and update README version notes when image contents change. - Do not introduce unrelated formatting or structural changes.