Skip to content

Feature request: @devcontainers/cli as a docker CLI plugin #827

Description

@trxcllnt

We've found it difficult to on-board users accustomed to the docker CLI to @devcontainers/cli.

It would be awesome if @devcontainers/cli were a docker CLI front-end plugin, similar to docker compose, docker buildx, etc.

Partially the motivation is similar to existing issues/PRs -- having a way to use the CLI without node would be great:

This would also hopefully provide incentive to better align with docker CLI idioms. For example:

  • The docker CLI has docker build, and Buildx/compose have docker buildx build and docker compose build.
  • The docker CLI has docker run, and compose has docker compose run.
  • etc.

For example, in the absence of devcontainer run <args>, we find ourselves writing scripts to wrap @devcontainers/cli and mimic the behavior:

local container_id rm up_args exec_args;
_parse_args_somehow rm up_args exec_args;on_exit() {
local code=$?;iftest -n "${rm-}"&&test -n "${container_id-}";then
docker rm -f "${container_id}">/dev/null 2>&1||true;
container_id="";fiexit"${code}";
}
trap on_exit EXIT;
container_id="$(devcontainer up ${rm:+--remove-existing-container}"${up_args[@]}"| jq -r '.containerId')";
devcontainer exec --workspace-folder . --config <path>"${exec_args[@]}";

It would be really neat to type docker devcontainer build . or docker devcontainer run --rm -it ..., especially if the @devcontainers/cli plugin also shipped shell completions!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions