|
|
@@ -17,9 +17,12 @@
|
|
|
package compose
|
|
|
|
|
|
import (
|
|
|
+ "context"
|
|
|
+
|
|
|
"github.com/pkg/errors"
|
|
|
"github.com/spf13/cobra"
|
|
|
|
|
|
+ "github.com/docker/api/client"
|
|
|
apicontext "github.com/docker/api/context"
|
|
|
"github.com/docker/api/context/store"
|
|
|
"github.com/docker/api/errdefs"
|
|
|
@@ -31,20 +34,7 @@ func Command() *cobra.Command {
|
|
|
Short: "Docker Compose",
|
|
|
Use: "compose",
|
|
|
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
|
|
|
- currentContext := apicontext.CurrentContext(cmd.Context())
|
|
|
- s := store.ContextStore(cmd.Context())
|
|
|
- cc, err := s.Get(currentContext)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- switch cc.Type() {
|
|
|
- case store.AciContextType:
|
|
|
- return nil
|
|
|
- case store.AwsContextType:
|
|
|
- return errors.New("use 'docker ecs compose' on context type " + cc.Type())
|
|
|
- default:
|
|
|
- return errors.Wrapf(errdefs.ErrNotImplemented, "compose command not supported on context type %q", cc.Type())
|
|
|
- }
|
|
|
+ return runCompose(cmd.Context())
|
|
|
},
|
|
|
}
|
|
|
|
|
|
@@ -55,3 +45,26 @@ func Command() *cobra.Command {
|
|
|
|
|
|
return command
|
|
|
}
|
|
|
+
|
|
|
+func runCompose(ctx context.Context) error {
|
|
|
+ c, err := client.New(ctx)
|
|
|
+ if err == nil {
|
|
|
+ composeService := c.ComposeService()
|
|
|
+ if composeService == nil {
|
|
|
+ return errors.New("compose not implemented in current context")
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ currentContext := apicontext.CurrentContext(ctx)
|
|
|
+ s := store.ContextStore(ctx)
|
|
|
+ cc, err := s.Get(currentContext)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ switch cc.Type() {
|
|
|
+ case store.AwsContextType:
|
|
|
+ return errors.New("use 'docker ecs compose' on context type " + cc.Type())
|
|
|
+ default:
|
|
|
+ return errors.Wrapf(errdefs.ErrNotImplemented, "compose command not supported on context type %q", cc.Type())
|
|
|
+ }
|
|
|
+}
|