-
Notifications
You must be signed in to change notification settings - Fork 350
Open
Labels
feature-requestNew feature or requestNew feature or request
Description
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:
- Package standalone binaries via @vercel/pkg #343
- Packaging and distribution of devcontainer as standalone executable #614
- RFC: Build as single executable application #618
This would also hopefully provide incentive to better align with docker CLI idioms. For example:
- The docker CLI has
docker build, and Buildx/compose havedocker buildx buildanddocker compose build. - The docker CLI has
docker run, and compose hasdocker 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=$?;
if test -n "${rm-}" && test -n "${container_id-}"; then
docker rm -f "${container_id}" >/dev/null 2>&1 || true;
container_id="";
fi
exit "${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!
brooke-hamilton and marcindulak
Metadata
Metadata
Assignees
Labels
feature-requestNew feature or requestNew feature or request