Define and run multi-container applications with Docker
Go to file
Christopher Crone 88ba591fc3 Seed random with nanosecond time
It's possible that users will run commands more than once a second.
Thus, seeding the random number generator with the current time in
seconds could produce results like the same container name in subsequent
commands.

Seeding with the current time in nanoseconds reduces the probability of
this.

Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-22 10:46:54 +02:00
.github Add pull request template 2020-05-20 14:36:46 +02:00
azure Seed random with nanosecond time 2020-05-22 10:46:54 +02:00
backend Initial functional login command : added Cloud API with generic Login() 2020-05-15 10:04:22 +02:00
cli Seed random with nanosecond time 2020-05-22 10:46:54 +02:00
client Remove gRPC stuff from the client 2020-05-20 16:49:20 +02:00
compose Let `make protos` affect host files 2020-05-13 10:44:04 +02:00
containers Add volumes to run command 2020-05-20 10:06:12 +02:00
context Put all magic strings in variables in context store 2020-05-18 16:42:06 +02:00
docs/cli Move CLI UX docs into folder 2020-05-14 13:29:11 +02:00
errdefs Fix linter problems 2020-05-20 10:16:36 +02:00
example Add tests for ps --all 2020-05-18 15:31:59 +02:00
moby Add timeout as a parameter to the stop action 2020-05-18 15:31:59 +02:00
multierror Add multierror 2020-05-13 18:37:41 +02:00
server Use config dir for serving API 2020-05-20 15:56:07 +02:00
tests Simplify e2e suite helpers 2020-05-21 09:33:08 +02:00
.dockerignore Update dockerignore 2020-05-20 15:56:32 +02:00
.gitignore Remove non-project path 2020-04-24 14:04:27 +02:00
.golangci.yml Extract interface / types to allow unit tests / mock 2020-05-15 10:15:56 +02:00
Dockerfile Implement printing published ports 2020-05-16 10:41:35 +02:00
Makefile Rework e2e tests into suite 2020-05-20 15:57:10 +02:00
README.md delegate Moby to docker-classic binary, link docker-classic in e2e tests 2020-05-20 14:23:29 +02:00
builder.Makefile Rework e2e tests into suite 2020-05-20 15:57:10 +02:00
go.mod Tidy Go modules 2020-05-20 15:57:28 +02:00
go.sum Tidy Go modules 2020-05-20 15:57:28 +02:00

README.md

Docker API

Actions Status

Dev Setup

The recommended way is to use the main Makefile that runs everything inside a container.

If you don't have or want to use Docker for building you need to make sure you have all the needed tools installed locally:

  • go 1.14
  • protoc
  • go get github.com/golang/protobuf/protoc-gen-go@v1.4.1
  • go get golang.org/x/tools/cmd/goimports
  • go get github.com/golangci/golangci-lint/cmd/golangci-lint@v1.26.0

And then you can call the same make targets but you need to pass it the builder.Makefile (make -f builder.Makefile).

The new CLI delegates to the classic docker for default contexts ; delegation is done to docker-classic.

  • make classic-link will create a docker-classic link in /usr/local/bin if you don't already have it from Docker Desktop

Building the project

$ make

If you make changes to the .proto files, make sure to make protos to generate go code.

Tests

To run unit tests:

make test

If you need to update a golden file simply do go test ./... -test.update-golden.