Skip to content

Latest commit

Β 

History

History
48 lines (32 loc) Β· 1.93 KB

File metadata and controls

48 lines (32 loc) Β· 1.93 KB

ITplusX Dev Container Features

Custom Dev Container Features maintained by ITplusX.

Features

Feature Description
shared-pnpm-store Mounts a shared Docker volume as the pnpm store directory via containerEnv. Never invokes pnpm. Recommended.
mount-pnpm-store Deprecated β€” use shared-pnpm-store instead. Sets the pnpm store to ~/.pnpm-store and mounts it to a shared volume. Patched copy of joshuanianji/devcontainer-features that works with pnpm >= 9 in non-interactive lifecycle shells.

Usage

"features": {
    "ghcr.io/itplusx/devcontainer-features/shared-pnpm-store:1": {}
}

Repo structure

Based on the official devcontainers/feature-starter template:

  • src/<feature-id>/ β€” one directory per feature (devcontainer-feature.json + install scripts)
  • test/<feature-id>/ β€” tests, run with devcontainer features test -f <feature-id> .
  • .github/workflows/release.yaml β€” publishes all features to ghcr.io/itplusx/devcontainer-features/<feature-id> (manual workflow_dispatch)

Publishing

  1. Bump version in the feature's devcontainer-feature.json
  2. Merge to main
  3. Run the Release dev container features workflow (Actions tab)
  4. First publish only: set the GHCR package visibility to public

Testing locally

npm install -g @devcontainers/cli
devcontainer features test -f shared-pnpm-store --skip-autogenerated .

Acknowledgements

The initial implementation of shared-pnpm-store was developed locally by @schloram. Thanks! πŸ™Œ

License

MIT β€” see LICENSE. The mount-pnpm-store feature contains code Copyright (c) 2023 Joshua Ji (MIT).