The Docker CLI
Go to file
Ian Campbell c3648a9c94 Add `docker build --iidfile=FILE`
This is synonymous with `docker run --cidfile=FILE` and writes the digest of
the newly built image to the named file. This is intended to be used by build
systems which want to avoid tagging (perhaps because they are in CI or
otherwise want to avoid fixed names which can clash) by enabling e.g. Makefile
constructs like:

    image.id: Dockerfile
    	docker build --iidfile=image.id .

    do-some-more-stuff: image.id
    	do-stuff-with <image.id

Currently the only way to achieve this is to use `docker build -q` and capture
the stdout, but at the expense of losing the build output.

In non-silent mode (without `-q`) with API >= v1.29 the caller will now see a
`JSONMessage` with the `Aux` field containing a `types.BuildResult` in the
output stream for each image/layer produced during the build, with the final
one being the end product.  Having all of the intermediate images might be
interesting in some cases.

In silent mode (with `-q`) there is no change, on success the only output will
be the resulting image digest as it was previosuly.

There was no wrapper to just output an Aux section without enclosing it in a
Progress, so add one here.

Added some tests to integration cli tests.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-05-05 12:12:36 -07:00
cli Add `docker build --iidfile=FILE` 2017-05-05 12:12:36 -07:00
client Add gocycle lint 2017-05-02 17:57:46 -04:00
cmd/docker windows: remove workaround for go#15286 and have compiling work on windows 2017-04-25 15:53:23 -07:00
dockerfiles Verify that vendored files are correct 2017-05-02 17:57:32 -04:00
vendor Add `docker build --iidfile=FILE` 2017-05-05 12:12:36 -07:00
.dockerignore make go build and docker build operations faster 2017-04-27 15:06:57 -07:00
.gitignore make go build and docker build operations faster 2017-04-27 15:06:57 -07:00
LICENSE Add project files 2017-04-17 17:49:33 -04:00
MAINTAINERS Add project files 2017-04-17 17:49:33 -04:00
Makefile Merge pull request #19 from dnephin/check-vendor 2017-05-03 16:01:56 -04:00
NOTICE Add project files 2017-04-17 17:49:33 -04:00
README.md add ci build status badge to readme 2017-05-03 13:28:06 -07:00
circle.yml Verify that vendored files are correct 2017-05-02 17:57:32 -04:00
docker.Makefile define targets as “phony”, add comments, and mount docker.sock in dev target 2017-05-03 11:14:06 -07:00
gometalinter.json Add ineffassign linter. 2017-05-02 17:57:46 -04:00
vendor.conf Add `docker build --iidfile=FILE` 2017-05-05 12:12:36 -07:00

README.md

build status

docker/cli

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

It's composed of 3 main folders

  • /cli - all the commands code.
  • /client - the API client, used by /cli.
  • /cmd/docker - the entrypoint of the cli, aka the main.

Development

Build locally

$ make build
$ make clean

You will need gox for this one:

$ make cross

If you don't have gox, you can use the "in-container" version of make cross, listed below.

Build inside container

$ make -f docker.Makefile build
$ make -f docker.Makefile clean
$ make -f docker.Makefile cross

In-container development environment

$ make -f docker.Makefile dev

Then you can use the build locally commands:

$ make build
$ make clean

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.