From 9fb837c71eb5aec81bc80fdec97708276ac4804f Mon Sep 17 00:00:00 2001 From: thediveo Date: Sat, 27 Jun 2026 14:34:36 +0000 Subject: [PATCH 1/3] chore: devcontainer, gh action pinning, readmes and notes Signed-off-by: thediveo --- .devcontainer/devcontainer.json | 7 ++++--- .github/workflows/release.yaml | 2 +- .github/workflows/test.yaml | 2 +- .github/workflows/validate.yaml | 2 +- README.md | 2 +- src/docsify/NOTES.md | 17 +++++++++++++++++ src/docsify/README.md | 17 +++++++++++++++++ src/docsify/devcontainer-feature.json | 2 +- src/local-pkgsite/NOTES.md | 9 ++++----- src/local-pkgsite/README.md | 9 ++++----- src/local-pkgsite/devcontainer-feature.json | 2 +- 11 files changed, 52 insertions(+), 19 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 82349d6..f3ef53c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,10 +2,11 @@ "name": "TheDiveO's devcontainer features", "image": "mcr.microsoft.com/devcontainers/base:ubuntu", "features": { - "ghcr.io/thediveo/devcontainer-features/pinact:0": {}, + "ghcr.io/thediveo/devcontainer-features/lazygit:0": {}, + "ghcr.io/thediveo/devcontainer-features/pinact:0": {}, "ghcr.io/devcontainers/features/node:2": {}, - "./devcontainers-cli": {}, - "ghcr.io/devcontainers/features/docker-in-docker:3": { + "./devcontainers-cli": {}, // installs devcontainer CLI, needs some node + "ghcr.io/devcontainers/features/docker-in-docker:4": { "version": "latest", "moby": false // go for the upstream Docker-CE }, diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index ade3c12..9361c71 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -14,7 +14,7 @@ jobs: packages: write steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: "publish Features" uses: devcontainers/action@1082abd5d2bf3a11abccba70eef98df068277772 # v1.4.3 diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index c7a9a49..3ac6fb5 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -32,7 +32,7 @@ jobs: baseImage: - mcr.microsoft.com/devcontainers/base:ubuntu steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: "install latest devcontainer CLI" run: npm install -g @devcontainers/cli@0.84.1 diff --git a/.github/workflows/validate.yaml b/.github/workflows/validate.yaml index 2f0b7d3..dec1e71 100644 --- a/.github/workflows/validate.yaml +++ b/.github/workflows/validate.yaml @@ -8,7 +8,7 @@ jobs: validate: runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: "validate devcontainer-feature.json files" uses: devcontainers/action@1082abd5d2bf3a11abccba70eef98df068277772 # v1.4.3 diff --git a/README.md b/README.md index 6354425..b58412b 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Container feature that also doesn't support Alpine. upstream https://github.com/containernetworking/plugins binary releases. - [docsify](src/docsify/README.md) – automatically serves ./docs workspace - directory via `docsify serve` in the background (with the specific workspace + directory via `browser-sync` in the background (with the specific workspace location being configurable). - [gcx](src/gcx/README.md) – installs `gcx` directly from upstream diff --git a/src/docsify/NOTES.md b/src/docsify/NOTES.md index f7c933b..aa7ec03 100644 --- a/src/docsify/NOTES.md +++ b/src/docsify/NOTES.md @@ -1,3 +1,20 @@ +## Feature Dependency + +This feature has a soft dependency on `ghcr.io/devcontainers/features/node` – +depending on you base image you already have a suitable node, otherwise you +might want to also reference the above node feature. + +For example: + +```json +{ + "features": { + "ghcr.io/devcontainers/features/node:2": {}, // unless base image has node + "ghcr.io/thediveo/devcontainer-features/docsify:1": {} + } +} +``` + ## Docs Directory If the directory configured in the `docs-path` option does not exist, it is diff --git a/src/docsify/README.md b/src/docsify/README.md index a21687a..17f365a 100644 --- a/src/docsify/README.md +++ b/src/docsify/README.md @@ -20,6 +20,23 @@ Automatically serves ./docs (or another) workspace directory via 'browser-sync' | reload-delay | time in milliseconds to delay the reload event following file changes | string | 2000 | | reload-debounce | time in milliseconds to restrict the frequency in which browser:reload events can be emitted to connected clients | string | 5000 | +## Feature Dependency + +This feature has a soft dependency on `ghcr.io/devcontainers/features/node` – +depending on you base image you already have a suitable node, otherwise you +might want to also reference the above node feature. + +For example: + +```json +{ + "features": { + "ghcr.io/devcontainers/features/node:2": {}, // unless base image has node + "ghcr.io/thediveo/devcontainer-features/docsify:1": {} + } +} +``` + ## Docs Directory If the directory configured in the `docs-path` option does not exist, it is diff --git a/src/docsify/devcontainer-feature.json b/src/docsify/devcontainer-feature.json index de14d1c..24d00be 100644 --- a/src/docsify/devcontainer-feature.json +++ b/src/docsify/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "docsify server", "id": "docsify", - "version": "1.0.0", + "version": "1.0.1", "description": "Automatically serves ./docs (or another) workspace directory via 'browser-sync' in the background.", "options": { "port": { diff --git a/src/local-pkgsite/NOTES.md b/src/local-pkgsite/NOTES.md index b6e3a9d..4379ea0 100644 --- a/src/local-pkgsite/NOTES.md +++ b/src/local-pkgsite/NOTES.md @@ -1,12 +1,11 @@ ## Feature Dependency -This feature has only a soft dependecy on `ghcr.io/devcontainers/features/go` so -that you have full control over from where and how you bring in the go -toolchain. +This feature has a soft dependecy on `ghcr.io/devcontainers/features/go` so that +you have full control over from where and how you bring in the go toolchain. Similar, it has a soft dependency on `ghcr.io/devcontainers/features/node` – depending on you base image you already have a suitable node, otherwise you -might want to use the aforementioned node feature. +might want to also reference the above node feature. For example: @@ -14,7 +13,7 @@ For example: { "features": { "ghcr.io/devcontainers/features/go:1": {}, - "ghcr.io/devcontainers/features/node:2": {}, // optional + "ghcr.io/devcontainers/features/node:2": {}, // unless base image has node "ghcr.io/thediveo/devcontainer-features/local-pkgsite:1": {} } } diff --git a/src/local-pkgsite/README.md b/src/local-pkgsite/README.md index 4a47893..c6afbf1 100644 --- a/src/local-pkgsite/README.md +++ b/src/local-pkgsite/README.md @@ -21,13 +21,12 @@ A local Go pkgsite serving the module documentation, with automatic browser refr ## Feature Dependency -This feature has only a soft dependecy on `ghcr.io/devcontainers/features/go` so -that you have full control over from where and how you bring in the go -toolchain. +This feature has a soft dependecy on `ghcr.io/devcontainers/features/go` so that +you have full control over from where and how you bring in the go toolchain. Similar, it has a soft dependency on `ghcr.io/devcontainers/features/node` – depending on you base image you already have a suitable node, otherwise you -might want to use the aforementioned node feature. +might want to also reference the above node feature. For example: @@ -35,7 +34,7 @@ For example: { "features": { "ghcr.io/devcontainers/features/go:1": {}, - "ghcr.io/devcontainers/features/node:2": {}, // optional + "ghcr.io/devcontainers/features/node:2": {}, // unless base image has node "ghcr.io/thediveo/devcontainer-features/local-pkgsite:1": {} } } diff --git a/src/local-pkgsite/devcontainer-feature.json b/src/local-pkgsite/devcontainer-feature.json index 1c49972..43b9072 100644 --- a/src/local-pkgsite/devcontainer-feature.json +++ b/src/local-pkgsite/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "Local Go Pkgsite", "id": "local-pkgsite", - "version": "1.0.1", + "version": "1.0.2", "description": "A local Go pkgsite serving the module documentation, with automatic browser refresh.", "options": { "port": { From 1dc0fc896e0b81efec4be8133646316d106a132d Mon Sep 17 00:00:00 2001 From: thediveo Date: Sat, 27 Jun 2026 14:48:17 +0000 Subject: [PATCH 2/3] chore: pull-through-cache-registry scenarios maintenance Signed-off-by: thediveo --- test/pull-through-cache-registry/scenarios.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/pull-through-cache-registry/scenarios.json b/test/pull-through-cache-registry/scenarios.json index 9313dd4..da8cfae 100644 --- a/test/pull-through-cache-registry/scenarios.json +++ b/test/pull-through-cache-registry/scenarios.json @@ -2,7 +2,7 @@ "default": { "image": "mcr.microsoft.com/devcontainers/base:ubuntu", "features": { - "ghcr.io/devcontainers/features/docker-in-docker:3": { + "ghcr.io/devcontainers/features/docker-in-docker:4": { "moby": false }, "pull-through-cache-registry": {} @@ -11,7 +11,7 @@ "9999": { "image": "mcr.microsoft.com/devcontainers/base:ubuntu", "features": { - "ghcr.io/devcontainers/features/docker-in-docker:3": { + "ghcr.io/devcontainers/features/docker-in-docker:4": { "moby": false }, "pull-through-cache-registry": { @@ -22,7 +22,7 @@ "quay.io": { "image": "mcr.microsoft.com/devcontainers/base:ubuntu", "features": { - "ghcr.io/devcontainers/features/docker-in-docker:3": { + "ghcr.io/devcontainers/features/docker-in-docker:4": { "moby": false }, "pull-through-cache-registry": { From 23afcd92d07c90b2d4e48b7c58400dfea54ea1a3 Mon Sep 17 00:00:00 2001 From: thediveo Date: Sat, 27 Jun 2026 15:01:54 +0000 Subject: [PATCH 3/3] fix: debian scenario test on nerdctl Signed-off-by: thediveo --- test/nerdctl/debian.sh | 4 ++++ test/nerdctl/scenarios.json | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/test/nerdctl/debian.sh b/test/nerdctl/debian.sh index 237e4bf..5ab7371 100644 --- a/test/nerdctl/debian.sh +++ b/test/nerdctl/debian.sh @@ -3,6 +3,10 @@ set -e source dev-container-features-test-lib +ls -l /run +sudo ls -l /run/docker +sudo ls -l /run/containerd + # as we're combining this test with docker-in-docker, containerd's socket isn't # in its default location and we explicitly specify it in this feature's options # (whalewatchers: hold my beer...) diff --git a/test/nerdctl/scenarios.json b/test/nerdctl/scenarios.json index 8e2fd69..f98aae5 100644 --- a/test/nerdctl/scenarios.json +++ b/test/nerdctl/scenarios.json @@ -16,14 +16,13 @@ "debian": { "image": "mcr.microsoft.com/devcontainers/base:debian-13", "features": { - "ghcr.io/devcontainers/features/docker-in-docker:3": { + "ghcr.io/devcontainers/features/docker-in-docker:4": { "moby": false, "dockerDashComposeVersion": "none", "installDockerBuildx": false }, "nerdctl": { - "cni-path": "/usr/local/bin/cni", - "containerd-api": "unix:///run/docker/containerd/containerd.sock" + "cni-path": "/usr/local/bin/cni" } } },