A reference implementation for the specification that can create and configure a dev container from a devcontainer.json.

Related tags

Command Line cli
Overview

Dev Container CLI

This repository holds the dev container CLI, which can take a devcontainer.json and create and configure a dev container from it.

Context

A development container allows you to use a container as a full-featured development environment. It can be used to run an application, to separate tools, libraries, or runtimes needed for working with a codebase, and to aid in continuous integration and testing. Dev containers can be run locally or remotely, in a private or public cloud.

Diagram of inner and outerloop development with dev containers

This CLI is in active development. Current status:

  • devcontainer build - Enables building/pre-building images
  • devcontainer up - Spins up containers with devcontainer.json settings applied
  • devcontainer run-user-commands - Runs lifecycle commands like postCreateCommand
  • devcontainer read-configuration - Outputs current configuration for workspace
  • devcontainer exec - Executes a command in a container with userEnvProbe, remoteUser, remoteEnv, and other properties applied
  • devcontainer stop - Stops containers
  • devcontainer down - Stops and deletes containers

Try it out

We'd love for you to try out the dev container CLI and let us know what you think. You can quickly try it out in just a few simple steps, either by installing its npm package or building the CLI repo from sources (see "Build from sources").

To install the npm package you will need Python and C/C++ installed to build one of the dependencies (see, e.g., here for instructions).

npm install

npm install -g @devcontainers/cli

Verify you can run the CLI and see its help text:

devcontainer <command>

Commands:
  devcontainer up                   Create and run dev container
  devcontainer build [path]         Build a dev container image
  devcontainer run-user-commands    Run user commands
  devcontainer read-configuration   Read configuration
  devcontainer exec <cmd> [args..]  Execute a command on a running dev container

Options:
  --help     Show help                                                 [boolean]
  --version  Show version number                                       [boolean]

Try out the CLI

Once you have the CLI, you can try it out with a sample project, like this Rust sample.

Clone the Rust sample to your machine, and start a dev container with the CLI's up command:

git clone https://github.com/microsoft/vscode-remote-try-rust
devcontainer up --workspace-folder <path-to-vscode-remote-try-rust>

This will download the container image from a container registry and start the container. Your Rust container should now be running:

[88 ms] dev-containers-cli 0.1.0.
[165 ms] Start: Run: docker build -f /home/node/vscode-remote-try-rust/.devcontainer/Dockerfile -t vsc-vscode-remote-try-rust-89420ad7399ba74f55921e49cc3ecfd2 --build-arg VARIANT=bullseye /home/node/vscode-remote-try-rust/.devcontainer
[+] Building 0.5s (5/5) FINISHED
 => [internal] load build definition from Dockerfile                       0.0s
 => => transferring dockerfile: 38B                                        0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [internal] load metadata for mcr.microsoft.com/vscode/devcontainers/r  0.4s
 => CACHED [1/1] FROM mcr.microsoft.com/vscode/devcontainers/rust:1-bulls  0.0s
 => exporting to image                                                     0.0s
 => => exporting layers                                                    0.0s
 => => writing image sha256:39873ccb81e6fb613975e11e37438eee1d49c963a436d  0.0s
 => => naming to docker.io/library/vsc-vscode-remote-try-rust-89420ad7399  0.0s
[1640 ms] Start: Run: docker run --sig-proxy=false -a STDOUT -a STDERR --mount type=bind,source=/home/node/vscode-remote-try-rust,target=/workspaces/vscode-remote-try-rust -l devcontainer.local_folder=/home/node/vscode-remote-try-rust --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --entrypoint /bin/sh vsc-vscode-remote-try-rust-89420ad7399ba74f55921e49cc3ecfd2-uid -c echo Container started
Container started
{"outcome":"success","containerId":"f0a055ff056c1c1bb99cc09930efbf3a0437c54d9b4644695aa23c1d57b4bd11","remoteUser":"vscode","remoteWorkspaceFolder":"/workspaces/vscode-remote-try-rust"}

You can then run commands in this dev container:

devcontainer exec --workspace-folder <path-to-vscode-remote-try-rust> cargo run

This will compile and run the Rust sample, outputting:

[33 ms] dev-containers-cli 0.1.0.
   Compiling hello_remote_world v0.1.0 (/workspaces/vscode-remote-try-rust)
    Finished dev [unoptimized + debuginfo] target(s) in 1.06s
     Running `target/debug/hello_remote_world`
Hello, VS Code Remote - Containers!
{"outcome":"success"}

Congrats, you've just run the dev container CLI and seen it in action!

Build from sources

This repository has a dev container configuration, which you can use to ensure you have the right dependencies installed.

Compile the CLI with yarn:

yarn
yarn compile

Verify you can run the CLI and see its help text:

node devcontainer.js --help

Specification

The dev container CLI is part of the Development Containers Specification. This spec seeks to find ways to enrich existing formats with common development specific settings, tools, and configuration while still providing a simplified, un-orchestrated single container option – so that they can be used as coding environments or for continuous integration and testing.

Learn more on the dev container spec website.

Additional resources

You may review other resources part of the specification in the devcontainers GitHub organization.

Contributing

Check out how to contribute to the CLI in CONTRIBUTING.md.

License

This project is under an MIT license.

Comments
  • Feature Dependencies - installsAfter not respected

    Feature Dependencies - installsAfter not respected

    Hello,

    I've written a couple of features for a project I'm working on and I've ran into situations where I'm not sure what the best approach to take is.

    For example, I have a feature which involves installing a CLI tool using npm. Now, I'm not sure whether this feature should also install Node.js so that it is able to install the CLI tool, since I have no control over the base image, nor the included features in the devcontainer.json file.

    The power of features, as I understand, is that they can be composed together; making each serve one purpose (installing the given feature) thus providing a simple way to handle all the tooling permutations for many different developers and/or teams whilst avoiding "golden container images"; and similar perhaps in concept to buildpacks.

    So it occurred to me that since devcontainers/features already provide features for installing Node.js (and other language runtimes), it would be beneficial to make my feature dependant on the node feature. Then I wouldn't need to worry about which base image a developer is using, and the node feature would be automatically included before mine, so my feature would install reliably.

    Additional scenarios include:

    • a Ruby gem which needs to build a native extension and thus requires build-essential to be installed.
    • a Python package, installed via pip, needing to ensure Python and pip are installed.
    • a Go CLI tool, which doesn't have a binary distribution, installed using go install, needing go to be installed.
    • a tflint ruleset for AWS, which requires Terraform and tflint to be installed.

    I realise installing packages using a postCreateCommand script can work, but it places the onus on the developer to know what features to include to install the given package. For example, I'm building features which install Python packages (e.g. mkdocs) for C# .Net developers, who wouldn't know to include the python feature.

    I imagine a devcontainer-feature.json file including a dependsOn property, in the same schema as the devcontainer.json features object.

    I.e.

    "dependsOn": {
      "ghcr.io/user/repo/go": {},
      "ghcr.io/user/repo1/go:1": {},
      "ghcr.io/user/repo2/go:latest": {},
      "https://github.com/user/repo/releases/devcontainer-feature-go.tgz": { 
            "optionA": "value" 
      },
      "./myGoFeature": { 
            "optionA": true,
            "optionB": "hello",
            "version" : "1.0.0"
      }
    }
    
    bug verified 
    opened by virtualstaticvoid 25
  • "cacheFrom" value not considered when building dev container features

    The build.cacheFrom value allows you to publish an image, and then use it as a local cache for subsequent builds on another machine (as does the Docker Compose equivalent). Currently contents of the image in cacheFrom do not appear to be being used during the dev container features build step which reduces the utility of it pretty significantly.

    Repro:

    1. Go to https://github.com/chuxel/feature-library and create a Codespace, or clone the project locally and create a dev container from it
    2. Watch the Dockerfile build

    Expected: Since there is a pre-built image with the "docker-in-docker" feature inside it (see https://github.com/Chuxel/feature-library/blob/main/.github/workflows/devcontainer-image.yaml), the feature docker build reuses the cached result. Actual: The image contents are only used in during the core Dockerfile build not during the feature build

    Log section illustrating the cache being used in one case, but not the other.

    2022-08-31 19:41:33.478Z: #14 [dev_container_auto_added_stage_label 2/2] RUN su node -c "npm install -g @devcontainers/cli"
    2022-08-31 19:41:33.758Z: #14 pulling sha256:0df7bb7c7da4a5becc4ee99cdb66cc9175a54cc0d860b26de69a7376b687e6a9
    2022-08-31 19:41:34.206Z: #14 pulling sha256:0df7bb7c7da4a5becc4ee99cdb66cc9175a54cc0d860b26de69a7376b687e6a9 0.4s done
    2022-08-31 19:41:38.855Z: #14 CACHED
    2022-08-31 19:41:38.997Z: 
    2022-08-31 19:41:38.997Z: #15 [dev_containers_target_stage 1/2] COPY --from=dev_containers_feature_content_source . /tmp/build-features/
    2022-08-31 19:41:39.107Z: #15 DONE 0.2s
    2022-08-31 19:41:39.246Z: 
    2022-08-31 19:41:39.247Z: #16 [dev_containers_target_stage 2/2] RUN cd /tmp/build-features/docker-in-docker_1 && export $(cat devcontainer-features.env | xargs) && chmod +x ./install.sh && ./install.sh
    2022-08-31 19:42:45.745Z: #16 66.46 DOCKER_MOBY_ARCHIVE_VERSION_CODENAMES=buster bullseye bionic focal jammy
    2022-08-31 19:42:45.745Z: #16 66.46 Distro codename  'bullseye'  matched filter  'buster bullseye bionic focal jammy'
    2022-08-31 19:42:45.745Z: #16 66.47 Running apt-get update...
    2022-08-31 19:42:45.884Z: #16 66.76 Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
    2022-08-31 19:42:46.022Z: #16 66.78 Get:2 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
    2022-08-31 19:42:46.022Z: #16 66.78 Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
    2022-08-31 19:42:46.022Z: #16 66.79 Get:4 https://dl.yarnpkg.com/debian stable InRelease [17.1 kB]
    ```
    bug 
    opened by Chuxel 21
  • devcontainer build fails with authentication error

    devcontainer build fails with authentication error

    Hi everyone,

    I've been using the build feature of the devcontainer CLI before and didn't have any issues until recently.

    Now when I try to build my devcontainer configuration I receive the following error:

    Building app
    [+] Building 1.4s (5/5) FINISHED                                                
     => [internal] load build definition from Dockerfile-with-features         0.0s
     => => transferring dockerfile: 3.85kB                                     0.0s
     => [internal] load .dockerignore                                          0.0s
     => => transferring context: 2B                                            0.0s
     => ERROR [internal] load metadata for docker.io/library/dev_container_fe  1.3s
     => [internal] load metadata for mcr.microsoft.com/vscode/devcontainers/b  0.3s
     => [auth] library/dev_container_feature_content_temp:pull token for regi  0.0s
    ------
     > [internal] load metadata for docker.io/library/dev_container_feature_content_temp:latest:
    ------
    failed to solve with frontend dockerfile.v0: failed to create LLB definition: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
    ERROR: Service 'app' failed to build : Build failed
    [4407 ms] Error: Command failed: docker-compose --project-name workspace_devcontainer -f /workspace/.devcontainer/docker-compose.yml -f /tmp/docker-compose/docker-compose.devcontainer.build-1655998380158.yml build --no-cache --pull app
    [4407 ms]     at buildAndExtendDockerCompose (/usr/local/share/nvm/versions/node/v16.15.1/lib/node_modules/@vscode/dev-container-cli/dist/spec-node/devContainersSpecCLI.js:19967:51)
    [4407 ms]     at processTicksAndRejections (node:internal/process/task_queues:96:5)
    [4407 ms]     at async doBuild (/usr/local/share/nvm/versions/node/v16.15.1/lib/node_modules/@vscode/dev-container-cli/dist/spec-node/devContainersSpecCLI.js:21358:7)
    [4407 ms]     at async build (/usr/local/share/nvm/versions/node/v16.15.1/lib/node_modules/@vscode/dev-container-cli/dist/spec-node/devContainersSpecCLI.js:21269:18)
    [4415 ms] Exit code 1
    

    I'm logged into Docker hub and can pull other images with no problem. Any ideas what could be the issue here?

    bug verified 
    opened by fasmat 14
  • Is the `installsAfter` property set on a Feature ignored during scenario testing?

    Is the `installsAfter` property set on a Feature ignored during scenario testing?

    It seems that the installsAfter property set in devcontainer-feature.json is not respected during the scenario tests and the test fails, is this a known limitation?

    https://github.com/eitsupi/rocker-devcontainer-features/blob/174de74153714a8f57e576ca175a8fd230aaded3/src/r-packages/devcontainer-feature.json#L29-L34 https://github.com/eitsupi/rocker-devcontainer-features/blob/174de74153714a8f57e576ca175a8fd230aaded3/test/r-packages/scenarios.json#L31-L39 https://github.com/rocker-org/devcontainer-features/actions/runs/3801508456/jobs/6466055972

    bug 
    opened by eitsupi 11
  • Publishing features to other registries than ghcr.io

    Publishing features to other registries than ghcr.io

    Hi

    I tried to publish a feature to a private repo on another package registry (gitlab) and it failed. Seems that identification token is only handled for GH registries.

    Is it confirmed? Is there some way to do this?

    opened by aacebedo 10
  • Add --output option to devcontainer build

    Add --output option to devcontainer build

    This is related to what was discussed in #155.

    This PR adds new options --output-type and --output-dest that pass through to docker buildx build --output.

    If there's anything that needs added or changed, please let me know!

    opened by natescherer 10
  • devcontainer executable permissions.

    devcontainer executable permissions.

    Hey folks.

    Thanks for this - it's awesome!

    I followed the instructions and enabled the devcontainer cli both on my Mac and on my Pop_OS linux machine. On both of these the devcontainer script was correctly symlinked into place, however calling devcontainer from a shell caused a permission denied error. Upon further inspection the ms-vscode-remote.remote-containers/cli-bin/devcontainer script was installed with 644 file permissions. I had to change them to 755 to be able to run it. Sadly, this means that I am getting an error about a corrupt vscode installation.

    bug verified 
    opened by jimsynz 10
  • "ENV" randomly added to environment variables that originate from features can prevent container from starting

    Currently if you add both the node and python features, the container will fail to start properly in Remote - Containers stable.

    In CLI 0.10.1, try building using this devcontainer.json...

    {
        "image": "mcr.microsoft.com/vscode/devcontainers/base:0-bullseye",
        "features": {
           "node": "latest",
           "python": "os-provided"
        } 
    }
    

    Now, start the container using the image that was built but specify /bin/bash as the entrypoint:

    docker run -it --rm <image-id> /bin/bash -c 'echo ${PATH}'
    

    You will get...

    /usr/local/python/bin:/usr/local/share/nvm/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binENV:/usr/local/py-utils/bin:/root/.local/bin
    

    The ENV is smashed up against /bin (becoming /binENV) which prevents anything under the /bin folder, including bash, from being found.

    With 0.11.1 or using the new dev container features via OCI, you will instead see a hang after the installation of Python followed eventually by lots of errors about chown... possibly caused by the same type of thing.

    {
        "image": "mcr.microsoft.com/vscode/devcontainers/base:0-bullseye",
        "features": {
           "ghcr.io/devcontainers/features/node": "latest",
           "ghcr.io/devcontainers/features/python": "os-provided"
        } 
    }
    

    Build result:

    ...
    #0 46.35 Updating /etc/bash.bashrc and /etc/zsh/zshrc...
    #0 141.7 chmod: cannot access '/usr/local/share/nvm/test/fast/Listing': No such
    file or directory
    #0 141.7 chmod: cannot access 'versions': No such file or directory
    #0 141.7 chmod: cannot access '/usr/local/share/nvm/test/fast/Listing': No such
    file or directory
    ...
    
    bug verified important 
    opened by Chuxel 9
  • Unable to build multi-platform images without also pushing them

    Unable to build multi-platform images without also pushing them

    Hello! Looks like when the --no-push parameter on devcontainer build was dropped it stopped being possible to build a multi-platform container without pushing it. The current code sets the behavior when you don't push to automatically add --load to the docker buildx build call, which is incompatible with manifest based Docker images (which multi-platform images must be).

    I will cook up a PR to fix this.

    under-discussion 
    opened by natescherer 8
  • Use make-fetch-happen instead of follow-redirects

    Use make-fetch-happen instead of follow-redirects

    Description

    Those changes makes use of make-fetch-happen package in place of follow-redirects for fetch operations, with the goal to handle using the CLI behind an HTTP proxy.

    Fixes #185.

    What tests have been done?

    To confirm the changes work as expected and that no regression is introduced, I ran the test suite (yarn package followed with yarn test) in the following scenarios:

    | Before/after changes | Internet connection | Tests result | Observations | | ------------------- | ------------------- | :----------------: | -------------- | | before | Direct | :heavy_check_mark: | | | before | Behind a proxy* | :x: | Network errors | | after | Direct | :heavy_check_mark: | | | after | Behind a proxy* | :heavy_check_mark: | |

    *without authentication

    opened by cailloumajor 7
  • GPU requirement and auto-detect NVIDIA extensions

    GPU requirement and auto-detect NVIDIA extensions

    This PR builds upon the proposal in https://github.com/devcontainers/spec/issues/82 When launching a devcontainer requesting GPUs it also detects the presence of NVIDIA docker extensions, and adds the --gpus all flag.

    This means that the same devcontainer can be used by developments that don't all have GPU's.

    It also does the equivalent for docker-compose scripts, adding the GPU access to the service specified in the devcontainer.json file

    opened by chris-major-improbable 7
  • devcontainer build with --push true failed when use image property

    devcontainer build with --push true failed when use image property

    devcontainer version: 0.27.1

    devcontainer.json with image property

    {
        "name": "kaitian-devcontainer",
        "image": "mcr.microsoft.com/devcontainers/javascript-node:14",
        "features": {
            "ghcr.io/stickmy/merchant-legacy-dev-features/kaitian:1.0.1": {}
        }
    }
    

    command

    devcontainer build --workspace-folder . --image-name ghcr.io/stickmy/kaitian-devcontainer:1.0.0 --push true
    

    The error message:

    => ERROR pushing vsc-kaitian-devcontainer-27da8ffe3eebb26605196a518a9f1f
    
    ERROR: denied: requested access to the resource is denied
    {"outcome":"error","message":"Command failed: docker buildx build --push --build-context dev_containers_feature_content_source=/var/folders/3n/0hqblg7d3mq2q0nlzkj31pgr0000gp/T/devcontainercli/container-features/0.27.1-1673115040210 --build-arg _DEV_CONTAINERS_BASE_IMAGE=mcr.microsoft.com/devcontainers/javascript-node:14 --build-arg _DEV_CONTAINERS_IMAGE_USER=root --build-arg _DEV_CONTAINERS_FEATURE_CONTENT_SOURCE=dev_container_feature_content_temp --target dev_containers_target_stage -t vsc-kaitian-devcontainer-27da8ffe3eebb26605196a518a9f1f22-features -f /var/folders/3n/0hqblg7d3mq2q0nlzkj31pgr0000gp/T/devcontainercli/container-features/0.27.1-1673115040210/Dockerfile.extended /var/folders/3n/0hqblg7d3mq2q0nlzkj31pgr0000gp/T/devcontainercli/empty-folder","description":"An error occurred building the container."}
    

    But the build works with build property

    {
        "name": "kaitian-devcontainer",
        "build": {
            "dockerfile": "Dockerfile",
            "args": {
                "VARIANT": "14"
            }
        },
        "features": {
            "ghcr.io/stickmy/merchant-legacy-dev-features/kaitian:1.0.1": {}
        }
    }
    

    Dockerfile

    ARG VARIANT="14"
    FROM mcr.microsoft.com/devcontainers/javascript-node:${VARIANT}
    
    opened by stickmy 0
  • Features: Input other than enum?

    Features: Input other than enum?

    I noticed that the test case set value that are not in the enum.

    https://github.com/devcontainers/feature-starter/blob/ea254a2b7d67d8526a6b9c85cfb5d96abfa780b2/test/_global/scenarios.json#L5-L7

    https://github.com/devcontainers/feature-starter/blob/ea254a2b7d67d8526a6b9c85cfb5d96abfa780b2/src/color/devcontainer-feature.json#L7-L13

    This may work for now, but I don't think it is generally expected behavior to enter any other value for an option that has enum set.

    bug 
    opened by eitsupi 6
  • Support docker-compose build with a `git` remote path as build.context

    Support docker-compose build with a `git` remote path as build.context

    Problem

    Devcontainer-cli failed to build container with build context pointing to remote path (in this case, git).

    sample docker-compose.yml:

    version: '3.9'
    services:
      workspace:
        build:
          context: https://my-private-repo/devcontainer.git
          dockerfile: jdk.dockerfile
          target: jdk15-mvn38-node14
        command: sleep infinity
        volumes:
          - ..:/workspace
    

    This docker-compose.yml built correctly when using docker compose but failed when using devcontainer-cli build

    Version

    [email protected] /home/pingu/.nvm/versions/node/v14.21.2/lib/node_modules/@devcontainers/cli

    Log file

    pingu@XXXXXX:~/repo/vsnotes/.devcontainer$ devcontainer build --workspace-folder ..
    [10 ms] @devcontainers/cli 0.27.1. Node.js v14.21.2. linux 5.10.102.1-microsoft-standard-WSL2 x64.
    [273 ms] Start: Run: docker-compose -f /home/pingu/repo/vsnotes/.devcontainer/docker-compose.yml --profile * config
    [359 ms] name: devcontainer
    services:
      workspace:
        build:
          context: https://my-private-repo/devcontainer.git
          dockerfile: jdk.dockerfile
          target: jdk15-mvn38-node14
        command:
        - sleep
        - infinity
        networks:
          default: null
        volumes:
        - type: bind
          source: /home/pingu/repo/vsnotes
          target: /workspace
          bind:
            create_host_path: true
    networks:
      default:
        name: devcontainer_default
    Error: ENOENT: no such file or directory, open '/home/pingu/repo/vsnotes/.devcontainer/https:/my-private-repo/devcontainer.git/jdk.dockerfile'
    {"outcome":"error","message":"ENOENT: no such file or directory, open '/home/pingu/repo/vsnotes/.devcontainer/https:/my-private-repo/devcontainer.git/jdk.dockerfile'","description":"An error occurred building the container."}
    
    feature-request 
    opened by pingu8007 4
  • Add dotfiles functionallity

    Add dotfiles functionallity

    Dotfiles are commonly used as ann extra customization step in devcontainers.

    This pr adds 3 more parameters to the up command. If the values are not present then dotfiles are not executed.

    • dotfiles-repository: Git URL to clone a dotfiles repository from.
    • dotfiles-install-command: Command to install the dotfiles with. If none is given a list of script names (install.sh, install, bootstrap.sh, bootstrap, setup.sh and setup) are checked for in the checked out dotfiles repository and if none is found all top-level dotfiles are symlinked from the container's home folder.
    • dotfiles-target-path: Folder path to clone the dotfiles repository to.
    opened by edgonmsft 0
  • increase test timeouts

    increase test timeouts

    We're seeing more transient timeouts in the unit tests recently, ~~likely due to https://github.com/devcontainers/cli/commit/0583b9cad9089e779104ec3b766f7a3f0fb41cb0, which needs to make additional HTTPs calls to fetch authorization from a remote OCI server.~~

    I've compared the runtime with and without https://github.com/devcontainers/cli/commit/0583b9cad9089e779104ec3b766f7a3f0fb41cb0, and do not notice any notable difference in performance: https://drive.google.com/file/d/1JWOVdBz0QzwmFQbUurnusPvEgWqF62Cl/view?usp=sharing

    opened by joshspicer 0
  • Setting NODE_OPTIONS in remoteEnv irretrievably breaks Codespace ⚠️

    Setting NODE_OPTIONS in remoteEnv irretrievably breaks Codespace ⚠️

    Discussed in https://github.com/orgs/devcontainers/discussions/14

    Originally posted by davetapley December 29, 2022 I inadvertently added a NODE_OPTIONS to remoteEnv instead of containerEnv, and it makes the Codespace irretrievably inaccessible as it get stuck in an infinite loop at "Setting up remote connection: Connecting to Codespace" (full output below).

    Luckily I could use the Export Changes to a Branch feature to get my changes out, but still not ideal.

    Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare:WorkspaceClient V] connecting to relay link:sb://vsls-prod-ins-usw2-private-relay.servicebus.windows.net/3adea42d2c562dd9b87b56cd29af5fd560de--65c06416-8428-4d0e-8247-6e295e7702a4
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare:WorkspaceClient V] creating node SSH...
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare:WorkspaceClient V] authenticating...
    [perf V] name:Creating the ssh workspace session duration:660.7617959976196
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare:WorkspaceClient:SshWorkspaceSession V] subscribing to onDispose event
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare:WorkspaceClient I] join started
    [perf V] name:Ssh auth completion duration:294.8621253967285
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare:WorkspaceClient E] auth failed
    [perf V] name:join LiveShare session duration:957.0970239639282
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare E] connection failed: > object #0: Live Share client authentication failed.
      at /Users/dave/.vscode/extensions/workspace/client/dist/src/SshHelpers.js:96:31
      at /Users/dave/.vscode/extensions/node_modules/@vs/vs-ssh/sshClientSession.js:103:60
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare I] connection status changed: connecting -> disconnected, error:> object #0: Live Share client authentication failed.
      at /Users/dave/.vscode/extensions/workspace/client/dist/src/SshHelpers.js:96:31
      at /Users/dave/.vscode/extensions/node_modules/@vs/vs-ssh/sshClientSession.js:103:60
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare I] firing change event: > object #0: {
      "status": "disconnected",
      "previousStatus": "connecting"
    }
    [Client:extension:1439:liveshare:onConnectionChanged:2828D7F4DA679AAFEA40B1B64BDC0011A3EC I] connecting -> disconnected
    [Client:extension:1439:liveshare:onConnectionChanged:2828D7F4DA679AAFEA40B1B64BDC0011A3EC I] disposing the connection
    [Client:extension:1439:liveshare I] disposing 2828D7F4DA679AAFEA40B1B64BDC0011A3EC connection
    [Client:extension:1439:liveshare:connection-record V] disposing reason: 'connection record disposed by ConnectionHub', disposing 2 objects
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare V] disposing reason: 'connection record disposed by ConnectionHub $1', disposing 3 objects
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare:WorkspaceClient V] disposing reason: 'Disposed from LiveShareConnection', disposing 2 objects
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare:WorkspaceClient I] stopCheckConnection reason:'disposed'
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare:WorkspaceClient:SshWorkspaceSession V] disposing reason: 'Disposed from LiveShareConnection $1', disposing 2 objects
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare:WorkspaceClient:SshWorkspaceSession:delayed-disposable V] Disposing reason:undefined
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare:delayed-disposable V] Disposing reason:undefined
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare V] signal rejected reason -> type:CancellationError props:{"stack":"Error: \n    at p.cancel (/Users/dave/.vscode/extensions/utils/dist/src/components/Signal.js:73:28)\n    at p.dispose (/Users/dave/.vscode/extensions/utils/dist/src/components/Signal.js:92:14)\n    at p.disposeObject (/Users/dave/.vscode/extensions/utils/dist/src/components/DisposableClass.js:30:28)\n    at /Users/dave/.vscode/extensions/utils/dist/src/components/DisposableClass.js:106:29\n    at Array.forEach (<anonymous>)\n    at p.dispose (/Users/dave/.vscode/extensions/utils/dist/src/components/DisposableClass.js:98:30)\n    at p.dispose (/Users/dave/.vscode/extensions/workspace/connection-hub/dist/src/connection/Connection.js:121:15)\n    at p.dispose (/Users/dave/.vscode/extensions/workspace/connection-hub/dist/src/connection/LiveShareConnection.js:57:15)\n    at p.disposeObject (/Users/dave/.vscode/extensions/utils/dist/src/components/DisposableClass.js:30:28)\n    at /Users/dave/.vscode/extensions/utils/dist/src/components/DisposableClass.js:106:29\n    at Array.forEach (<anonymous>)\n    at p.dispose (/Users/dave/.vscode/extensions/utils/dist/src/components/DisposableClass.js:98:30)\n    at h.disposeConnection (/Users/dave/.vscode/extensions/workspace/connection-hub/dist/src/connectionHub/ConnectionHub.js:230:30)\n    at h.<anonymous> (/Users/dave/.vscode/extensions/workspace/connection-hub/dist/src/connectionHub/ConnectionHub.js:209:18)\n    at Generator.next (<anonymous>)\n    at /Users/dave/.vscode/extensions/workspace/connection-hub/dist/src/connectionHub/ConnectionHub.js:8:71\n    at new Promise (<anonymous>)\n    at __awaiter (/Users/dave/.vscode/extensions/workspace/connection-hub/dist/src/connectionHub/ConnectionHub.js:4:12)\n    at h.onConnectionChanged (/Users/dave/.vscode/extensions/workspace/connection-hub/dist/src/connectionHub/ConnectionHub.js:195:16)\n    at g.invoke (/Users/dave/.vscode/extensions/node_modules/vscode-jsonrpc/lib/events.js:62:39)\n    at p.fire (/Users/dave/.vscode/extensions/node_modules/vscode-jsonrpc/lib/events.js:120:36)\n    at p.onConnectionChangedHandler (/Users/dave/.vscode/extensions/workspace/connection-hub/dist/src/connection/Connection.js:154:46)\n    at p.handleConnectionError (/Users/dave/.vscode/extensions/workspace/connection-hub/dist/src/connection/Connection.js:189:14)\n    at p.<anonymous> (/Users/dave/.vscode/extensions/workspace/connection-hub/dist/src/connection/LiveShareConnection.js:131:22)\n    at Generator.throw (<anonymous>)\n    at rejected (/Users/dave/.vscode/extensions/workspace/connection-hub/dist/src/connection/LiveShareConnection.js:6:57)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)","errorType":"CancellationError"}
    [Client:extension:1439:liveshare:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare E] connection failed: > object #0: Live Share client authentication failed.
    Error: Live Share client authentication failed.
        at callback (/Users/dave/.vscode/extensions/workspace/client/dist/src/SshHelpers.js:96:31)
        at /Users/dave/.vscode/extensions/node_modules/@vs/vs-ssh/sshClientSession.js:103:60
        at processTicksAndRejections (node:internal/process/task_queues:96:5)
    [Client:extension:1439:liveshare W] disposing connection "2828D7F4DA679AAFEA40B1B64BDC0011A3EC" due to an error> object #0: Live Share client authentication failed.
    Error: Live Share client authentication failed.
        at callback (/Users/dave/.vscode/extensions/workspace/client/dist/src/SshHelpers.js:96:31)
        at /Users/dave/.vscode/extensions/node_modules/@vs/vs-ssh/sshClientSession.js:103:60
        at processTicksAndRejections (node:internal/process/task_queues:96:5)
    [Client:extension:1439:liveshare I] disposing 2828D7F4DA679AAFEA40B1B64BDC0011A3EC connection
    [Client:extension:1439:liveshare W] error during connection> object #0: Live Share client authentication failed.
    Error: Live Share client authentication failed.
        at callback (/Users/dave/.vscode/extensions/workspace/client/dist/src/SshHelpers.js:96:31)
        at /Users/dave/.vscode/extensions/node_modules/@vs/vs-ssh/sshClientSession.js:103:60
        at processTicksAndRejections (node:internal/process/task_queues:96:5)
    [perf V] name:Joining the workspace duration:299.3900308609009
    [Client:extension:1439:liveshare-joint:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare-joint:liveshare E] connection failed: > object #0: Live Share client authentication failed.
    Error: Live Share client authentication failed.
        at callback (/Users/dave/.vscode/extensions/workspace/client/dist/src/SshHelpers.js:96:31)
        at /Users/dave/.vscode/extensions/node_modules/@vs/vs-ssh/sshClientSession.js:103:60
        at processTicksAndRejections (node:internal/process/task_queues:96:5)
    [Client:extension:1439:liveshare-joint:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare-joint:liveshare I] connection status changed: connecting -> disconnected, error:> object #0: Live Share client authentication failed.
    Error: Live Share client authentication failed.
        at callback (/Users/dave/.vscode/extensions/workspace/client/dist/src/SshHelpers.js:96:31)
        at /Users/dave/.vscode/extensions/node_modules/@vs/vs-ssh/sshClientSession.js:103:60
        at processTicksAndRejections (node:internal/process/task_queues:96:5)
    [Client:extension:1439:liveshare-joint:connection:2828D7F4DA679AAFEA40B1B64BDC0011A3EC:liveshare-joint:liveshare I] firing change event: > object #0: {
      "status": "disconnected",
      "previousStatus": "connecting"
    }
    ```</div>
    bug 
    opened by Chuxel 1
Owner
Organization for the Development Containers Specification and dev container resources.
null
A CLI to add and remove local development environments and create HTTPS certificates for them.

A CLI used to create a local https dev environment with the green lock. Setup takes less than 5 minutes and all of your projects will be running locally over HTTPS with custom domain names in no time!

Entrostat (Pty) Ltd 5 Sep 19, 2022
📜 Create mutable log lines into the terminal, and give life to your logs!

Because Logging can be pretty and fun Installation $ npm install draftlog What it does It allows you to re-write a line of your log after being writt

Ivan Seidel 1.2k Dec 31, 2022
A simple CLI tool to create and manage xhelpers-api projects

A simple CLI tool to create and manage xhelpers-api projects

null 2 Feb 25, 2022
Create clickable links in the terminal

terminal-link Create clickable links in the terminal Install $ npm install terminal-link Usage import terminalLink from 'terminal-link'; const link

Sindre Sorhus 539 Dec 31, 2022
LinkFree CLI is a command line tool that helps you to create your LinkFree profile through CLI.

LinkFree CLI LinkFree CLI is a command line tool that helps you to create your LinkFree profile through CLI. Demo Using the CLI (Commands) Note First

Pradumna Saraf 32 Dec 26, 2022
Started pack for working with the new GameTest Framework API. Usable in windows, and mobile in worlds and realms!

GameTest FrameWork GameTest FrameWork is a new feature in Minecraft Bedrock Edition. This gives you the ability to script! In this example I will be u

null 40 Dec 24, 2022
Find and fix problems in your JavaScript code.

ESLint Website | Configuring | Rules | Contributing | Reporting Bugs | Code of Conduct | Twitter | Mailing List | Chat Room ESLint is a tool for ident

ESLint 22k Jan 8, 2023
Infinite Red's cutting edge React Native project boilerplate, along with a CLI, component/model generators, and more!

Ignite - the hottest React Native boilerplate Battle-tested React Native boilerplate The culmination of five years of constant React Native developmen

Infinite Red, Inc. 14.7k Dec 29, 2022
Test your internet connection speed and ping using speedtest.net from the CLI

speed-test Test your internet connection speed and ping using speedtest.net from the CLI Install Ensure you have Node.js version 8+ installed. Then ru

Sindre Sorhus 3.8k Jan 7, 2023
Detect copy-pasted and structurally similar code

Detect copy-pasted and structurally similar JavaScript code. Requires Node.js 6.0+, and supports ES6, JSX as well as Flow. Note: the project has been

Daniel St. Jules 3.5k Dec 26, 2022
Move files and directories to the trash

Move files and folders to the trash Works on macOS (10.12+), Linux, and Windows (8+). Note: The Linux implementation is not very good and not maintain

Sindre Sorhus 2.4k Dec 29, 2022
Pipeable javascript. Quickly filter, map, and reduce from the terminal

Pipeable JavaScript - another utility like sed/awk/wc... but with JS! Quickly filter, map and reduce from the command line. Features a streaming API.

Daniel St. Jules 410 Dec 10, 2022
Kill all Chrome tabs to improve performance, decrease battery usage, and save memory

kill-tabs Kill all Chrome tabs to improve performance, decrease battery usage, and save memory Works on macOS, Linux, Windows. I'm a tab-abuser and I

Sindre Sorhus 371 Jan 8, 2023
HMSC (How Much Stuffs CLI) analyst for your files and folders

HMSC ?? About HMSC (How Much Stuffs CLI) analyst for your files and folders ?? Screenshot ?? Requirements Node.js NPM ?? Installation $ npm i -g hmsc

Abdullah Veliyev 26 Jan 10, 2022
Add a hungry turtle to your terminal and feed it every time you mistype 'npm' as 'nom'

Nom Does this ever happen to you? You happily code away on a project, navigating the command line like a pro, testing, error logging, installing packa

Meike Hankewicz 5 Apr 26, 2022
replacement for comma.ai backend and useradmin dashboard. comes bundled with a modified cabana instance for seamless drive reviewing.

retropilot-server Replacement for comma.ai backend and useradmin dashboard. Bundled with a modified version of comma's cabana to allow viewing & analy

Florian Brede 39 Dec 4, 2022
Tasks Management CLI application with Nodejs, Mongodb, inquirer.js, and commander

Tasks CLI Tasks CLI is a program to manage your tasks in a database using terminal or console. This is a sample project for beginners Requirements Nod

Fazt Web 9 Nov 17, 2022
A fullstack(NestJS、React) framework for building efficient and scalable applications

A fullstack(NestJS、React) framework for building efficient and scalable applications. Description The Kunlun CLI is a command-line interface tool that

图灵人工智能研究院前端技术团队 3 Mar 12, 2022