devcontainers / devcontainers/cli
Feature request: `@devcontainers/cli` as a docker CLI plugin
- Lingua principale
- TypeScript
- Stelle
- 3k
- Fork
- 457
- Merge medio
- 13h 17m
- PR unite (30g)
- 6
Descrizione
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`](https://github.com/docker/compose), [`docker buildx`](https://github.com/docker/buildx), etc.
Partially the motivation is similar to existing issues/PRs -- having a way to use the CLI without node would be great:
* https://github.com/devcontainers/cli/pull/343
* https://github.com/devcontainers/cli/issues/614
* https://github.com/devcontainers/cli/pull/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 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 `, we find ourselves writing scripts to wrap `@devcontainers/cli` and mimic the behavior:
```shell
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 "${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!
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.