Commit Graph

81 Commits

Author SHA1 Message Date
Guillaume Tardif 303958bb44
Merge pull request #574 from ulyssessouza/alias-rm-kill
Add 'kill' as an alias to 'stop'
2020-09-04 13:07:38 +02:00
Guillaume Tardif adeba9b124 Fix bug not allowing users to run any context command when set to an aws context type.
When users have an “aws" context type, we try to exec the command (will execute context ls, context use, etc.) and when it fails because it doesn’t find the aws backend, then display the custom error for aws context type.

Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-04 11:01:55 +02:00
Ulysses Souza 15066ce999 Add 'kill' command
- On ACI that's implemented as a stop,
since ACI does not implement a kill

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-09-04 02:57:54 +02:00
Nicolas De Loof fed50d79f2
introduce ecs-local context
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-31 15:30:05 +02:00
Nicolas De Loof 7f8bb030e6
Introduce ECS emulation mode
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-31 10:01:52 +02:00
Guillaume Tardif ad5c465bd1
Merge pull request #485 from docker/repo-rename
Rename docker/api -> docker/compose-cli
2020-08-25 15:58:51 +02:00
Ulysses Souza 59f7d7cd00 Redirect user from plugin usage to integrated ECS
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-08-24 19:29:10 +02:00
Chris Crone 4c6280b0e9 Rename docker/api -> docker/compose-cli
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-08-21 17:28:39 +02:00
Guillaume Tardif 4c3b563182 ECS context type is not for delegation to Moby !
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-08-21 14:32:46 +02:00
Nicolas De Loof 32adf3e4e6
Introduce `secret` management command and ECS implementation
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-21 13:56:52 +02:00
Djordje Lukic 635ecd7b99 Return a default implementation when nil
Some backends can decide not to implement a whole set of APIs (compose
for example), we now return a default implementation that returns a
`errdefs.ErrNotImplemented` for each action making it easy for the cli
to print a helpful error message. We also remove any possible nil
panics.

Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
2020-08-20 14:32:03 +02:00
Djordje Lukic 88c405e025 Use buffered channels for signals 2020-08-13 10:34:42 +02:00
Djordje Lukic 1a3182fb7f Implement `docker start` for ACI 2020-08-12 14:50:47 +02:00
Guillaume Tardif ee062e8333 ACI Stop implementation 2020-08-12 10:32:35 +02:00
Djordje Lukic 093a69136f Add --force to rm on ACI
If a container is running the user must force the removal of the
container.
2020-08-11 16:30:42 +02:00
aiordache d1b8bcb2c7 fix signal passing to mobycli
Signed-off-by: aiordache <anca.iordache@docker.com>
2020-08-05 15:05:32 +02:00
aiordache 87245ef727 rename packages ( amazon to ecs and azure to aci )
Signed-off-by: aiordache <anca.iordache@docker.com>
2020-07-30 11:34:34 +02:00
aiordache 355295696f Create aws context
Signed-off-by: aiordache <anca.iordache@docker.com>
2020-07-30 11:34:34 +02:00
aiordache 5a26b25709 handle compose on all context types
Signed-off-by: aiordache <anca.iordache@docker.com>
2020-07-29 11:58:09 +02:00
Guillaume Tardif 492ce96dd4 Implement azure logout 2020-07-08 17:48:10 +02:00
Guillaume Tardif 0776e79e8e Exit without error message if user canceled command (typical scenario : ACI `logs — follow` and ctrl-C while querying ACI) 2020-07-06 17:28:02 +02:00
Guillaume Tardif 964e331a10 Specific exit code when command fails because azure login is required. Will be used by VSCode Docker integration 2020-07-02 13:52:57 +02:00
Djordje Lukic 98976e4cb4 Cleanup entrypoint
* use the `fatal` function when we can
* rename moby.ExecRegardlessContext to Exec
2020-06-26 10:23:37 +02:00
Djordje Lukic 908212a947 Add version in the main package
This way, when we release goreleaser will inject the right version in
the ldflags
2020-06-25 12:00:37 +02:00
Djordje Lukic 0c1f0f81df Usage metrics
Send usage to Docker Desktop
2020-06-23 16:52:52 +02:00
Guillaume Tardif fa8b911cd8 Allow running `docker -v` or `--version` even if context is not default 2020-06-23 15:13:43 +02:00
Guillaume Tardif 38d4f8d25a Shell out to Moby cli if user uses -H, regardless of context set. Moby cli will refuse both options (context & host) to be set at the same time 2020-06-23 12:00:46 +02:00
Guillaume Tardif dbaab41604 Changed root level debug shorthand to capital D, make it consistent with Moby flag and not clash with —detach future option 2020-06-22 13:19:37 +02:00
Guillaume Tardif 45750fe104 Do not display “docker for the 2020s” as the first help line ! 2020-06-19 12:21:31 +02:00
Djordje Lukic ad72c866cc Add license headers 2020-06-18 16:48:03 +02:00
Guillaume Tardif ab3cd0fec1 Renamed ExecIfDefaultCtxType for more explicit behaviour 2020-06-18 09:29:01 +02:00
Guillaume Tardif bbcdad39d5 Renamed docker-classic to “com.docker.com”. 2020-06-17 17:57:53 +02:00
Ulysses Souza 96bc1ca6f1 Add inspect command
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-06-15 15:08:04 +02:00
Guillaume Tardif 0de2522079 Renamed Moby backend to “local” backend. This will leave “moby” available for default type contexts 2020-06-15 12:20:03 +02:00
Guillaume Tardif 336df897c1
Merge pull request #207 from docker/version_cli
version command adding azure integration beta version in textual output
2020-06-15 12:02:33 +02:00
Guillaume Tardif 98f7a8e1aa When can not load config file, the previous cli is displaying a WARNING message, but continues with default context, we should do the same.
This happened in some desktop e2e tests where the config file is not set properly in WSL2 environment, see 
https://github.com/docker/pinata/pull/14062
2020-06-15 11:41:26 +02:00
Guillaume Tardif dda4b0f3bf Wrap error cause so that we can understand why the cli cannot determine current context.
This happened in Desktop WSL2 tests, we’re blind here : https://ci-next.docker.com/teams-desktop/blue/organizations/jenkins/desktop%2Fdesktop-test-single-pr-win/detail/desktop-test-single-pr-win/120692/pipeline
2020-06-14 19:38:29 +02:00
Guillaume Tardif 376a4b671c version command adding azure integration beta version in textual output 2020-06-13 10:47:05 +02:00
Guillaume Tardif 72bae873c5 Do not delegate to old cli if cobra fails before invoking the PreRun or SetHelp hook that call isOwnCommand(). Find the command from root.Find(args).
Tried to use  `cmd, err := root.ExecuteC()` but I can’t pass the context like with `root.ExecuteContext(ctx)`, could not find a way without and explicit call to root.Find(args)
2020-06-10 17:25:52 +02:00
Djordje Lukic 22d4d250a9 Move the config into own package and outside of cli 2020-06-08 16:01:36 +02:00
Guillaume Tardif f939dd4d47 Display friendly message if unknown command is available in default context 2020-06-05 18:24:08 +02:00
Guillaume Tardif e2b9f5bc57 Move login to root command, delegate to classic login when only one arg and not dot in it 2020-06-01 22:55:46 +02:00
Guillaume Tardif 528d47ce08 Add docker context inspect command relying on classic docker 2020-05-29 12:02:14 +02:00
Guillaume Tardif ea98a2dd78 Fix docker-classic creation makefile target 2020-05-27 21:14:07 +02:00
Guillaume Tardif cc46f84043 Forward closing signal to docker-classic when closing docker. Note this will not forward Kill signal, impossible to intercept / process this one. 2020-05-27 18:38:51 +02:00
Guillaume Tardif 66a83410dd Ensure we have a clear error message in case of wrong setup (previously it would just exit with no error message) 2020-05-26 23:46:02 +02:00
Djordje Lukic 11339761ca Change the way a context is stored
Initially we stored the context data in the `Metadata` of the context
but in hindsight this data would be better of in the `Endpoints` because
that's what it is used for.

Before:
```json
{
  "Name": "aci",
  "Metadata": {
    "Type": "aci",
    "Data": {
      "key": "value"
    }
  },
  "Endpoints": {
      "docker": {}
  }
}
```

After:
```json
{
  "Name": "aci",
  "Type": "aci",
  "Metadata": {},
  "Endpoints": {
      "aci": {
          "key": "value"
      },
      "docker": {}
  }
}
```

With this change the contexts that we create are more in line with the contexts the docker cli creates.

It also makes the code less complicated since we don't need to marsal twice any more. The API is nicer too:

```go
// Get a context:
c, err := store.Get(contextName)

// Get the stored endpoint:
var aciContext store.AciContext
if err := contextStore.GetEndpoint(currentContext, &aciContext); err != nil {
	return nil, err
}
```
2020-05-22 16:32:43 +02:00
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
Christopher Crone 058e6203a7 Store config dir in CLI context
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-20 15:55:05 +02:00
Guillaume Tardif 2610b986fd delegate Moby to docker-classic binary, link docker-classic in e2e tests 2020-05-20 14:23:29 +02:00