Define and run multi-container applications with Docker
Go to file
Guillaume Tardif 819a7389f7 Fix login error when login to an azure account having no associated tenant.
This was encountered by @lorenrh with stack : 
```
docker login azure
panic: runtime error: index out of range [0] with length 0
goroutine 1 [running]:
github.com/docker/api/azure/login.AzureLoginService.Login(0xc0004cc2a0, 0x2d, 0xe8b8a0, 0x1476830, 0xe8e4e0, 0xc000498ff0, 0x0, 0x0)
        github.com/docker/api/azure/login/login.go:130 +0x1057
github.com/docker/api/azure.(*aciCloudService).Login(0xc0004888c0, 0xe8e4e0, 0xc000498ff0, 0x0, 0xe82720, 0xc0004888c0)
        github.com/docker/api/azure/backend.go:283 +0x64
github.com/docker/api/cli/cmd/login.cloudLogin(0xc0004eb600, 0xd422a4, 0x3, 0x1, 0xffffffffffffffff)
        github.com/docker/api/cli/cmd/login/login.go:53 +0xae
github.com/docker/api/cli/cmd/login.runLogin(0xc0004eb600, 0xc00049c5f0, 0x1, 0x1, 0x0, 0x0)
        github.com/docker/api/cli/cmd/login/login.go:39 +0x15e
github.com/spf13/cobra.(*Command).execute(0xc0004eb600, 0xc00049c5d0, 0x1, 0x1, 0xc0004eb600, 0xc00049c5d0)
        github.com/spf13/cobra@v1.0.0/command.go:842 +0x45a
github.com/spf13/cobra.(*Command).ExecuteC(0xc0004a8580, 0xc000498fc0, 0xc41160, 0x1476830)
        github.com/spf13/cobra@v1.0.0/command.go:950 +0x350
github.com/spf13/cobra.(*Command).Execute(...)
        github.com/spf13/cobra@v1.0.0/command.go:887
github.com/spf13/cobra.(*Command).ExecuteContext(...)
        github.com/spf13/cobra@v1.0.0/command.go:880
main.main()
        github.com/docker/api/cli/main.go:167 +0x68f
```
2020-06-10 10:15:03 +02:00
.dependabot Run dependabot daily instead of weekly 2020-06-09 09:45:57 +02:00
.github Change the way a context is stored 2020-05-22 16:32:43 +02:00
azure Fix login error when login to an azure account having no associated tenant. 2020-06-10 10:15:03 +02:00
backend Remove unused backend proto 2020-06-02 09:41:57 +02:00
cli Add context endpoint to set the current context 2020-06-08 16:01:43 +02:00
client Fix Azure login : allow getting a backend when no corresponding context already exists with an explicit call from the login command. Will be usefull next for context creation with azure interactive things 2020-05-29 11:35:35 +02:00
compose Put all protos inside the `protos` package 2020-05-25 15:04:28 +02:00
config Move the config into own package and outside of cli 2020-06-08 16:01:36 +02:00
containers Put all protos inside the `protos` package 2020-05-25 15:04:28 +02:00
context Interactive context create, adding method CreateContextData to CloudService interface, so Cloud Backends can provide a custom context creation method. 2020-06-02 16:04:08 +02:00
docs/cli Move CLI UX docs into folder 2020-05-14 13:29:11 +02:00
errdefs Change the way a context is stored 2020-05-22 16:32:43 +02:00
example Fix Azure login : allow getting a backend when no corresponding context already exists with an explicit call from the login command. Will be usefull next for context creation with azure interactive things 2020-05-29 11:35:35 +02:00
moby Merge pull request #179 from rumpl/feat-stream 2020-06-08 06:52:56 -07:00
multierror Add multierror 2020-05-13 18:37:41 +02:00
protos Add context endpoint to set the current context 2020-06-08 16:01:43 +02:00
server Move streams into own package 2020-06-08 16:01:53 +02:00
tests Merge pull request #179 from rumpl/feat-stream 2020-06-08 06:52:56 -07:00
.dockerignore Add .git to .dockerignore 2020-05-29 11:29:28 +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 Unify protos with client interfaces 2020-06-08 09:43:19 +02:00
Makefile Tidy Makefiles 2020-06-02 11:58:29 +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 Tidy Makefiles 2020-06-02 11:58:29 +02:00
go.mod Bump github.com/stretchr/testify from 1.5.1 to 1.6.1 2020-06-08 21:26:19 +00:00
go.sum Bump github.com/stretchr/testify from 1.5.1 to 1.6.1 2020-06-08 21:26:19 +00: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.