Notable changes.
- Update UID only if GID is in use (microsoft/vscode-remote-release#7284)
- Empty lockfile in workspaceFolder will initialize lockfile (devcontainers#637)
- Surface buildkit policy errors (devcontainers#627)
- Handle missing entry in /etc/passwd gracefully (microsoft/vscode-remote-release#8875)
- Add
--cache-to
option todevcontainer build
command (devcontainers#570) - Fix: Fallback when getent is not available (microsoft/vscode-remote-release#8811)
- Fix: Only allocate tty for
docker exec
when stdin is a tty (devcontainers#606)
- Fix: Allocate pty for
docker exec
(devcontainers#556)
- Publish without node-pty dependency (devcontainers#585)
- Record feature dependencies in the lockfile (devcontainers#566)
- Record features referenced by tarball URI in lockfile (devcontainers#594)
- Update proxy-agent to avoid vm2 (devcontainers#596)
- Outdated command (devcontainers#565)
- Case-insensitive instructions (microsoft/vscode-remote-release#6850)
- Automatically set execute bit when running dotfiles install script (devcontainers#541)
- Use getent passwd (microsoft/vscode-remote-release#2957)
- Update supported node engines to ^16.13.0 || >=18.0.0 (devcontainers#572)
- Upgrade compiler target to ES2021 (devcontainers#568)
- Secret masking improvements (devcontainers#569)
- Load
NODE_EXTRA_CA_CERTS
in Electron (devcontainers#559) - Features Test Cmd: "Duplicate" test mode to test Feature Idempotence (devcontainers#553)
- Mask user secrets in logs (devcontainers#551)
- Preview: Feature Dependencies (devcontainers/spec#234)
devcontainer-feature.json
can now specify adependsOn
property that lists other Features that must be installed before the current Feature can be installed.- Complete rewrite of the Feature dependency resolution model
- NOTE: This is a feature preview - please submit your feedback!
- Fix containerEnv values with spaces (devcontainers#532)
- Fix a bug in passing users secrets to dotfile clone and install commands (devcontainers#544)
- Fix for mount command string generation (devcontainers#537)
- Add object notation support for
initializeCommand
(devcontainers#514) - Keep existing lockfile updated (devcontainers/spec#236)
- HttpOci: Retry fetching bearer token anonymously if credentials appear expired (devcontainers#515)
- Bump proxy-agent (devcontainers#534)
- Log feature advisories (devcontainers#528)
- Check for disallowed features (devcontainers#521)
- Secret support for up and run-user-commands (devcontainers#493)
- Experimental lockfile support (devcontainers#495)
- Update vm2 (devcontainers#500)
- Update auth precedence level for fetching Features/Templates. Notably preferring
docker login
credentials. (devcontainers#482)- The precedence order (https://github.com/devcontainers/cli/blob/4fde394ac16df1061b731d2d2f226850277cbce2/src/spec-configuration/httpOCIRegistry.ts#L147) is now:
- parsed out of a special DEVCONTAINERS_OCI_AUTH environment variable
- Read from a docker credential helper indicated in config
- Read from a docker cred store indicated in config (https://docs.docker.com/engine/reference/commandline/login/#credentials-store)
- Read from a docker config file (flat file with base64 encoded credentials)
- Read from the platform's default credential helper
- Crafted from the
GITHUB_TOKEN
environment variable
- The precedence order (https://github.com/devcontainers/cli/blob/4fde394ac16df1061b731d2d2f226850277cbce2/src/spec-configuration/httpOCIRegistry.ts#L147) is now:
- Features can now be pinned to a digest in
devcontainer.json
(devcontainers#480) - Automatically clean up test containers when using
devcontainers features test
(devcontainers#450)- The
--preserve-test-containers
flag can be used to disable this behavior
- The
- Various internal changes to the Features/Templates OCI registry implementation (devcontainers#490)
- Update vm2 (devcontainers#488)
- Add --config to build command (microsoft/vscode-remote-release#8068)
- Features/Templates: Fix a bug in reading from docker credential helpers (devcontainers#477)
- Add initial support for docker credential helpers when fetching Features/Templates. (devcontainers#460, contributed by @aaronlehmann)
- Transform maven, gradle and jupyterlab usages to their features v2 counterparts. (devcontainers#461)
- Escape and enclose containerEnv in quotes when writing to Dockerfile. (devcontainers#454)
- Update package dependencies.
- Also require name property in
devcontainer-feature.json
. (devcontainers#447) - Add
--omit-config-remote-env-from-metadata
to omit remoteEnv from devcontainer config on container metadata label. (devcontainers#453) - Only include required legacy scripts. (microsoft/vscode-remote-release#7532)
- Connect stdin to executed process. (devcontainers#59)
- Better support for private Features published to Azure Container Registry (devcontainers#444)
- Initial support for Features contributing lifecycle hooks (devcontainers#390)
- Retry docker pull on error (devcontainers#428)
- Fix:
devcontainer feature test
cmd should fail if Feature's sub-folder does not exist (devcontainers#418)
- Add label for config file. (microsoft/vscode-remote-release#7548)
- Add docs for
devcontainer templates publish
. (devcontainers#410)
- Fix: Merge metadata logic for containerEnv for
devcontainer build
. (devcontainers#392) - Support querying registries that Accept application/vnd.oci.image.index.v1+json. (devcontainers#393)
- Updates Features cache logic - Incrementally copy features near the layer they're installed. (devcontainers#382)
- Add
set-up
command. (microsoft/vscode-remote-release#7872)
- Features preamble: Add warnings for Feature renames & deprecation. (devcontainers#366)
- Add dotfiles functionallity. (devcontainers#362)
- Cache user env for performance improvement. (devcontainers#374)
- Fix: Modify argument regex to only allow certain set of values (devcontainers#361)
- Fix: Fixed fromStatement parsing to parse quotes in variable expressions (devcontainers#356)
- Fix: Allow prebuilding image without a Dockerfile (devcontainers#352)
- Fix: Failed to fetch local disk feature on Windows (devcontainers#333)
- Features: Adds 'deprecated' property (devcontainers#346)
- Features: Adds 'legacyIds' property (devcontainers#335)
- Follow Docker Token Authentication Specification (devcontainers#341)
- Fix: Handle parsing variable expression in dockerfile (devcontainers#337)
- Add more detail to the output of
publish
commands (devcontainers#326)
- A more spec-compliant/resilient OCI distribution implementation. (devcontainers#318)
- Update NPM package dependencies. (devcontainers#315)
- Fix escaping of embedded JSON. (devcontainers#324)
- Emit a JSON summary of the result of the
features publish
andtemplates publish
commands (devcontainers#305) - Fix: "ssh-add: communication with agent failed" (microsoft/vscode-remote-release#7601)
- Fix Feature/Template publishing issue when a capital letter is in the repo name (devcontainers#303)
- Fix regression in devcontainers#298
features test
: Respect image label metadata. (devcontainers#288)- Surface first error (microsoft/vscode-remote-release#7382)
templates publish
: Exit for "Failed to PUT manifest for tag x" error. (devcontainers#296)- Respect devcontainer.json when using image without features. (devcontainers#299)
- Emit response from registry on failed
postUploadSessionId
(devcontainers#298) - downcase OCI identifiers and validate input of getRef() (devcontainers#293)
features test
: Respects testing scenarios where 'remoteUser' is non-root (devcontainers#286)
- Handle quoted base image (microsoft/vscode-remote-release#7323)
- Use plain text when not in terminal (devcontainers#253)
features test
documentation (devcontainers#219)features test
: Copy entire test folder on test execution and improve CLI command usage. (devcontainers#265)- Avoid image build (microsoft/vscode-remote-release#7378)
- Preserve syntax directive (microsoft/vscode-remote-release#7463)
- GPU requirement and auto-detect NVIDIA extensions (devcontainers#173)
features test
: Pattern to provide additional files in scenario test. (devcontainers#273)- Handle Cygwin / Git Bash sockets forwarding on Windows. (devcontainers#62)
- Handle ENV without
=
. (microsoft/vscode-remote-release#7493) - Bundle CLI for NPM package. (devcontainers#279)
features test
: Add --filter to allow for selectively running scenarios. (devcontainers#272)
- Add flag to omit
customizations
from image metadata. (devcontainers#262) - Normalize feature permissions. (devcontainers#153)
- Skip features code path without features. (devcontainers#258)
- Pick up updated
remoteEnv
,remoteUser
anduserEnvProbe
properties. (devcontainers#252)
- Consider base image env when looking up USER. (microsoft/vscode-remote-release#7358)
- Handle ENV when looking up USER. (microsoft/vscode-remote-release#7303)
- Last mount source wins. (microsoft/vscode-remote-release#7368)
- Add missing substitutions in run-user-commands. (microsoft/vscode-remote-release#7412)
- Last updateRemoteUserUID value wins. (microsoft/vscode-remote-release#7390)
- Add
${devcontainerId}
configuration variable. (devcontainers/spec#62) - User environment variables for features. (devcontainers/spec#91)
- New Command:
templates apply
to apply fetch and apply a dev container Template to a project - Initial support for running lifecycle scripts in parallel
- Improvements to the
features test
command - Improvements related to packaging dev container Features and Templates
- Handle old and otherwise started containers (microsoft/vscode-remote-release#7307)
- Configure proxy-agent (microsoft/vscode-remote-release#6995)
- Only set target when previously set. (microsoft/vscode-remote-release#7301)
- Check for existing syntax directive. (microsoft/vscode-remote-release#6848)
- Templates & Features Packaging - Throw warning of a missing JSON file and continue. (devcontainers#206)
- Inspect image in registry to avoid pulling it. (microsoft/vscode-remote-release#7273)
- Introduces
templates publish
command. (devcontainers#198) - Adds
--additional-features
option. (devcontainers#171) - Adds
--output
option to thedevcontainer build
command. (devcontainers#166)
- Use qualified id for features. (microsoft/vscode-remote-release#7253)
- Avoid changing metadata order. (microsoft/vscode-remote-release#7254)
- Include version in all override files. (microsoft/vscode-remote-release#7244)
- Image metadata. (devcontainers#188)
- Fix typo in 'installsAfter'. (devcontainers#163)
- Add --skip-post-attach. (devcontainers#174)
- Improve feature installation logs. (devcontainers#178)
- Properly source feature options. (devcontainers#148)
- Replace containerEnv in entire config and in read-configuration command. (microsoft/vscode-remote-release#7121)
- Update to vscode-dev-containers 0.245.2.
- Updates to
devcontainer features test
command- Can now specify a
scenarios.json
per-feature
- Can now specify a
- Introduces
devcontainer features info
command
- Pick up v0.10.2 related to container ENV output.
- Native implementation for pushing a dev container feature to an OCI registry
features publish
command
- WIP on features v2:
- Auto map old feature ids to OCI features. (devcontainers#100)
- Fix malformed container ENV output for 'v1' features (devcontainers#131)
- Fixes regression where some dev container feature properties were not being applied properly (devcontainers#126)
- Fixes undesired behavior with dev container features and multi-stage builds (devcontainers#120)
- Implement optional default values in localEnv/containerEnv expansions. (devcontainers#50)
- Log version and install location at the end of
--help
. (devcontainers#114) - WIP on features v2:
- Update
direct-tarball
to follow spec. (devcontainers#105) - Add
features package
command. (devcontainers#93) - Fix cwd for building with local features. (devcontainers#116)
- Update
- WIP on features v2:
- Contributable features in OCI registries.
- Build command: Support multiple --image-name parameters (#61)
- WIP on features v2:
- Contributable features.
features test
command.
- Multi-platform build support. (devcontainers#24)
- User-scoped tmp folder on Linux. (microsoft/vscode-remote-release#2347)
- Handle undefined context. (microsoft/vscode-remote-release#6815)
- Avoid comment after ARG for Podman. (microsoft/vscode-remote-release#6819)
- Update to vscode-dev-containers 0.238.1.
- Update to vscode-dev-containers 0.238.0.
- Merge user and features Dockerfile to simplify cache and multi-platform handling.
- Use PTY for
--log-format-json
.
- BuildKit version check for
--build-context
.
- Use single Dockerfile to build image for single container using BuildKit.
- Initial version.