From 7dc750a93bd822086a3fccedb0181273102359d9 Mon Sep 17 00:00:00 2001 From: Oh My Felix Date: Fri, 29 May 2026 18:12:33 +0000 Subject: [PATCH 1/7] chore: add CI rollout baseline --- .github/workflows/docker.yml | 23 ++++++++++++++++++++--- Makefile | 10 +++++++++- README.md | 29 ++++++++++++----------------- 3 files changed, 41 insertions(+), 21 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 6b2861a..828a78f 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -15,9 +15,9 @@ jobs: uses: dockette/.github/.github/workflows/docker.yml@master secrets: inherit with: - image: "dockette/vagrant" - tag: "${{ matrix.item }}" - context: "${{ matrix.item }}" + image: "dockette/vagrant" + tag: "${{ matrix.item }}" + context: "${{ matrix.item }}" strategy: matrix: include: @@ -29,3 +29,20 @@ jobs: - item: "debian-11-systemd" fail-fast: false + + docs: + name: "Docs" + runs-on: "ubuntu-latest" + needs: ["build"] + if: github.event.workflow_run.head_branch == 'master' + + steps: + - name: "Checkout" + uses: actions/checkout@v6 + + - name: "Update Docker Hub description" + uses: peter-evans/dockerhub-description@v5 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + repository: "dockette/vagrant" diff --git a/Makefile b/Makefile index d4e96ed..c191c5e 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,15 @@ DOCKER_IMAGE=dockette/vagrant DOCKER_PLATFORM?=linux/arm64 -.PHONY: build-all +.PHONY: build test run build-all + +build: build-all + +test: + vagrant validate + +run: run-debian-13-systemd + build-all: build-debian-13 build-debian-13-systemd build-debian-12 build-debian-12-systemd build-debian-11 build-debian-11-systemd build-debian-10 build-debian-10-systemd .PHONY: build-debian-13 diff --git a/README.md b/README.md index 6a6305d..b878f91 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,14 @@

Dockette / Vagrant

- Ready-to-use Docker images for Vagrant. + GitHub Actions + Docker Hub pulls + GitHub Sponsors + Support/Discussions

-🕹 f3l1x.io | 💻 f3l1x | 🐦 @xf3l1x -

- -

- - - + Ready-to-use Docker images for Vagrant.

----- @@ -66,14 +63,12 @@ docker run \ ## Development -See [how to contribute](https://contributte.org/contributing.html) to this package. - -This package is currently maintaining by these authors. - - - - +```sh +make build +make test +make run +``` ------ +## Maintenance -Consider to [support](https://github.com/sponsors/f3l1x) **f3l1x**. Also thank you for using this package. +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 aec27685d78508d5cdbd55125cfe4822d5341a21 Mon Sep 17 00:00:00 2001 From: Oh My Felix Date: Wed, 3 Jun 2026 14:06:16 +0000 Subject: [PATCH 2/7] chore: align Makefile Docker variables --- Makefile | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index c191c5e..b65eb89 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ DOCKER_IMAGE=dockette/vagrant -DOCKER_PLATFORM?=linux/arm64 +DOCKER_TAG?=debian-13-systemd +DOCKER_PLATFORMS?=linux/arm64 .PHONY: build test run build-all @@ -8,7 +9,15 @@ build: build-all test: vagrant validate -run: run-debian-13-systemd +run: + docker run \ + -it \ + --rm \ + --platform ${DOCKER_PLATFORMS} \ + --privileged \ + --cgroupns=host \ + -v /sys/fs/cgroup:/sys/fs/cgroup:rw \ + ${DOCKER_IMAGE}:${DOCKER_TAG} build-all: build-debian-13 build-debian-13-systemd build-debian-12 build-debian-12-systemd build-debian-11 build-debian-11-systemd build-debian-10 build-debian-10-systemd @@ -41,7 +50,7 @@ _docker-build-%: docker buildx \ build \ --pull \ - --platform ${DOCKER_PLATFORM} \ + --platform ${DOCKER_PLATFORMS} \ -t ${DOCKER_IMAGE}:${VERSION} \ ./${VERSION} @@ -49,7 +58,7 @@ run-debian-12-systemd: docker run \ -it \ --rm \ - --platform ${DOCKER_PLATFORM} \ + --platform ${DOCKER_PLATFORMS} \ --privileged \ --cgroupns=host \ -v /sys/fs/cgroup:/sys/fs/cgroup:rw \ @@ -59,7 +68,7 @@ run-debian-13-systemd: docker run \ -it \ --rm \ - --platform ${DOCKER_PLATFORM} \ + --platform ${DOCKER_PLATFORMS} \ --privileged \ --cgroupns=host \ -v /sys/fs/cgroup:/sys/fs/cgroup:rw \ From 29cac094a426803d8a1991538a6b453641d03ba8 Mon Sep 17 00:00:00 2001 From: Oh My Felix Date: Wed, 3 Jun 2026 14:19:49 +0000 Subject: [PATCH 3/7] chore: place PHONY declarations above targets --- Makefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index b65eb89..8191353 100644 --- a/Makefile +++ b/Makefile @@ -2,13 +2,15 @@ DOCKER_IMAGE=dockette/vagrant DOCKER_TAG?=debian-13-systemd DOCKER_PLATFORMS?=linux/arm64 -.PHONY: build test run build-all +.PHONY: build build: build-all +.PHONY: test test: vagrant validate +.PHONY: run run: docker run \ -it \ @@ -19,6 +21,7 @@ run: -v /sys/fs/cgroup:/sys/fs/cgroup:rw \ ${DOCKER_IMAGE}:${DOCKER_TAG} +.PHONY: build-all build-all: build-debian-13 build-debian-13-systemd build-debian-12 build-debian-12-systemd build-debian-11 build-debian-11-systemd build-debian-10 build-debian-10-systemd .PHONY: build-debian-13 @@ -46,6 +49,7 @@ build-debian-10: _docker-build-debian-10 build-debian-10-systemd: _docker-build-debian-10-systemd _docker-build-%: VERSION=$* +.PHONY: _docker-build-% _docker-build-%: docker buildx \ build \ @@ -54,6 +58,7 @@ _docker-build-%: -t ${DOCKER_IMAGE}:${VERSION} \ ./${VERSION} +.PHONY: run-debian-12-systemd run-debian-12-systemd: docker run \ -it \ @@ -64,6 +69,7 @@ run-debian-12-systemd: -v /sys/fs/cgroup:/sys/fs/cgroup:rw \ ${DOCKER_IMAGE}:debian-12-systemd +.PHONY: run-debian-13-systemd run-debian-13-systemd: docker run \ -it \ From c13697848035f1065e42058eac29491fbd37f1f7 Mon Sep 17 00:00:00 2001 From: Oh My Felix Date: Wed, 3 Jun 2026 14:23:28 +0000 Subject: [PATCH 4/7] 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 fd0b468ad64f8749f9df511be97688a4ed73dae4 Mon Sep 17 00:00:00 2001 From: Oh My Felix Date: Wed, 3 Jun 2026 14:29:32 +0000 Subject: [PATCH 5/7] 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..56759aa 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,18 +2,35 @@ ## Project -Docker image repository in the Dockette organization. +Dockette Vagrant publishes Docker images that behave like Vagrant boxes, including SSH-ready Debian images and systemd-enabled variants for Vagrant's Docker provider or direct Docker use. + +## Images + +- Docker image: `dockette/vagrant`. +- Default Makefile tag: `debian-13-systemd`. +- Makefile build contexts: `debian-13`, `debian-13-systemd`, `debian-12`, `debian-12-systemd`, `debian-11`, `debian-11-systemd`, `debian-10`, `debian-10-systemd`. +- Workflow publish matrix currently includes Debian 13, 12, and 11 contexts only. +- Plain variants run `sshd -D`; `*-systemd` variants run `/lib/systemd/systemd` and declare `/sys/fs/cgroup` as a volume. ## 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 Makefile-listed image contexts with Docker Buildx. +- `make test` runs `vagrant validate` against `Vagrantfile`. +- `make run` starts `${DOCKER_IMAGE}:${DOCKER_TAG}` with the privileges needed for systemd. +- `make run-debian-12-systemd` and `make run-debian-13-systemd` start explicit systemd images. +- Override `DOCKER_TAG`, `DOCKER_IMAGE`, or `DOCKER_PLATFORMS` when checking a specific image or platform. + +## Runtime Notes + +- There are no compose files in this repository. +- Systemd images require `--privileged`, `--cgroupns=host`, and `-v /sys/fs/cgroup:/sys/fs/cgroup:rw`. +- The default Makefile platform is `linux/arm64`; keep that in mind when building on amd64 hosts. +- `Vagrantfile` uses the Docker provider by default and tests SSH/provisioning behavior through Vagrant and Ansible in CI. ## Guidelines -- Keep Dockerfiles, `Makefile`, README, and GitHub Actions workflow changes aligned. +- Keep Dockerfiles, README image lists, Makefile targets, `Vagrantfile`, and workflow matrices aligned when changing supported Debian versions. - 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. +- Preserve the `vagrant` user, passwordless sudo, authorized key setup, SSH port exposure, and cleanup behavior unless intentionally changing box semantics. - Do not introduce unrelated formatting or structural changes. From 2e3fa1576185cf1dfaba030b47fe95a5074e4d7f Mon Sep 17 00:00:00 2001 From: Oh My Felix Date: Fri, 5 Jun 2026 11:36:02 +0000 Subject: [PATCH 6/7] docs: clarify README image and validation notes Co-authored-by: Felix --- README.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b878f91..219bb43 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ docker run \ dockette/vagrant:debian-13-systemd ``` -### Images +### Published Images - `dockette/vagrant:debian-13` - `dockette/vagrant:debian-13-systemd` @@ -58,8 +58,8 @@ docker run \ - `dockette/vagrant:debian-12-systemd` - `dockette/vagrant:debian-11` - `dockette/vagrant:debian-11-systemd` -- `dockette/vagrant:debian-10` -- `dockette/vagrant:debian-10-systemd` + +The Docker workflow publishes Debian 13, 12, and 11 tags. Debian 10 Dockerfiles remain available for local builds, but Debian 10 tags are not part of the current publish matrix. ## Development @@ -69,6 +69,16 @@ make test make run ``` +Makefile defaults: + +- `DOCKER_IMAGE=dockette/vagrant` +- `DOCKER_TAG=debian-13-systemd` +- `DOCKER_PLATFORMS=linux/arm64` + +`make build` builds every Makefile-listed context, including the local Debian 10 contexts. `make test` runs `vagrant validate` only. Full CI validation also starts the Docker provider with `vagrant up --provider=docker` and runs the Ansible checks in `.tests/`. + +Override `DOCKER_TAG` to run a different image tag and `DOCKER_PLATFORMS` to target another platform, for example `DOCKER_PLATFORMS=linux/amd64 make build`. The default `linux/arm64` platform may use emulation or fail unexpectedly on amd64 hosts without compatible Buildx/QEMU support. + ## 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 c89379e5fe2af0286233a272654aab38dbf66a96 Mon Sep 17 00:00:00 2001 From: f3l1x Date: Tue, 16 Jun 2026 22:28:56 +0200 Subject: [PATCH 7/7] ci: gate vagrant publish to master + successful test run --- .github/workflows/docker.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 828a78f..3829ae7 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -12,6 +12,7 @@ permissions: jobs: build: name: "Build" + if: github.event.workflow_run.head_branch == 'master' && github.event.workflow_run.conclusion == 'success' uses: dockette/.github/.github/workflows/docker.yml@master secrets: inherit with: