Notable changes.
- 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 logincredentials. (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_TOKENenvironment 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-containersflag 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-metadatato 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 testcmd 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-upcommand. (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
publishcommands (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 publishandtemplates publishcommands (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 testdocumentation (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
customizationsfrom image metadata. (devcontainers#262) - Normalize feature permissions. (devcontainers#153)
- Skip features code path without features. (devcontainers#258)
- Pick up updated
remoteEnv,remoteUseranduserEnvProbeproperties. (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 applyto apply fetch and apply a dev container Template to a project - Initial support for running lifecycle scripts in parallel
- Improvements to the
features testcommand - 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 publishcommand. (devcontainers#198) - Adds
--additional-featuresoption. (devcontainers#171) - Adds
--outputoption to thedevcontainer buildcommand. (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 testcommand- Can now specify a
scenarios.jsonper-feature
- Can now specify a
- Introduces
devcontainer features infocommand
- Pick up v0.10.2 related to container ENV output.
- Native implementation for pushing a dev container feature to an OCI registry
features publishcommand
- 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-tarballto follow spec. (devcontainers#105) - Add
features packagecommand. (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 testcommand.
- 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.