The Docker CLI
Go to file
Jean Rouge b039db985a Make it possible to override the volume mounts and shell for the dev container
Through the `DOCKER_CLI_MOUNTS` and `DOCKER_CLI_SHELL` env variables. Also
allows setting the dev container name through the `DOCKER_CLI_CONTAINER_NAME`
env var.

The motivation for allowing overriding the volume mounts is the same as for
moby/moby#37845, namely that I/O perf on native mounted
disks on non-Linux (notably Mac OS) is just terrible, thus making it a real
pain to develop: one has to choose between re-building the image after every
single change (eg to run a test) or just work directly inside the same
container (eg with vim, but even then one would have to re-configure their dev
container every time it gets destroyed - containers, after all, are not
supposed to be long-lived).

Allowing to override DOCKER_CLI_MOUNTS makes it easy for everyone
to decide what their volume/syncing strategy is; for example
one can choose to use [docker-sync](https://github.com/EugenMayer/docker-sync).

As for the shell, it's nice to be able to use bash instead of the more
bare-bones `ash` if preferred.

Finally, being able to name the container can come in handy for easier
scripting on the host.

This patch won't change anything for anyone who doesn't set these env variables
in their environment.

Signed-off-by: Jean Rouge <rougej+github@gmail.com>
2019-01-14 10:40:30 -08:00
.github Remove outdated completion reviewers file 2018-08-01 15:08:36 +02:00
cli Merge pull request #1595 from JoeWrightss/patch-1 2019-01-13 14:55:11 +01:00
cmd/docker Merge pull request #1429 from AkihiroSuda/fix-docker-invalid-subcommand 2018-10-24 20:45:01 +02:00
contrib/completion Merge pull request #1546 from albers/completion-import--platform 2018-12-07 20:07:49 +01:00
dockerfiles Bump Golang 1.11.4 (includes fix for CVE-2018-16875) 2018-12-19 12:55:59 +01:00
docs support --mount type=bind,bind-nonrecursive,... 2019-01-10 12:07:46 +09:00
e2e Add option to pull images quietly 2018-12-19 13:48:41 +01:00
experimental Fix link to Kubernetes blog 2018-12-29 01:39:54 +01:00
internal Remove e-mail from trial flow 2019-01-08 00:35:24 +01:00
kubernetes alias kubernetes api to compose-on-kubernetes implementation 2018-12-28 15:49:17 +01:00
man support --mount type=bind,bind-nonrecursive,... 2019-01-10 12:07:46 +09:00
opts support --mount type=bind,bind-nonrecursive,... 2019-01-10 12:07:46 +09:00
scripts e2e: assign a default value of 0 to `DOCKERD_EXPERIMENTAL` 2018-12-17 14:32:38 +00:00
service/logs Update tests to use gotest.tools 👼 2018-06-08 18:24:26 +02:00
templates Update tests to use gotest.tools 👼 2018-06-08 18:24:26 +02:00
types Remove unused helath check func 2018-10-02 20:52:34 +02:00
vendor Bump licensing library 2019-01-08 00:35:18 +01:00
.dockerignore make go build and docker build operations faster 2017-04-27 15:06:57 -07:00
.gitignore Update gitignore 2017-09-27 16:45:35 +02:00
.mailmap Update AUTHORS 2019-01-08 00:01:36 +01:00
AUTHORS Update AUTHORS 2019-01-08 00:01:36 +01:00
CONTRIBUTING.md Add Contribution guidelines 2017-07-28 11:33:19 -07:00
Jenkinsfile Add a Jenkinsfile 2017-08-16 10:46:43 -04:00
LICENSE Add project files 2017-04-17 17:49:33 -04:00
MAINTAINERS Remove outdated completion reviewers file 2018-08-01 15:08:36 +02:00
Makefile Makefile: make help: fix newline wrapping, and missing targets 2019-01-10 13:30:03 +01:00
NOTICE Add project files 2017-04-17 17:49:33 -04:00
README.md Add jenkins build status to readme 2017-09-15 15:08:28 +02:00
TESTING.md Update TESTING.md to replace testify by gotest.tools 2018-07-02 09:24:28 +02:00
VERSION Bump version to 19.03.0-dev 2018-09-11 13:06:49 +02:00
appveyor.yml Bump Golang 1.11.4 (includes fix for CVE-2018-16875) 2018-12-19 12:55:59 +01:00
circle.yml Do not patch Dockerfiles in CI 2018-11-29 10:44:14 +01:00
codecov.yml Fix PR comments 2018-01-03 10:23:32 +01:00
docker.Makefile Make it possible to override the volume mounts and shell for the dev container 2019-01-14 10:40:30 -08:00
gometalinter.json Add support for kubernetes in docker cli 2017-12-26 11:22:32 +01:00
poule.yml Add github templates and initial poule configuration 2017-05-09 16:57:46 +02:00
vendor.conf Bump licensing library 2019-01-08 00:35:18 +01:00

README.md

build status Build Status

docker/cli

This repository is the home of the cli used in the Docker CE and Docker EE products.

Development

docker/cli is developed using Docker.

Build a linux binary:

$ make -f docker.Makefile binary

Build binaries for all supported platforms:

$ make -f docker.Makefile cross

Run all linting:

$ make -f docker.Makefile lint

List all the available targets:

$ make help

In-container development environment

Start an interactive development environment:

$ make -f docker.Makefile shell

In the development environment you can run many tasks, including build binaries:

$ make binary

Legal

Brought to you courtesy of our legal counsel. For more context, please see the NOTICE document in this repo.

Use and transfer of Docker may be subject to certain restrictions by the United States and other governments.

It is your responsibility to ensure that your use and/or transfer does not violate applicable laws.

For more information, please see https://www.bis.doc.gov

Licensing

docker/cli is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.