mirror of https://github.com/docker/compose.git
Merge pull request #11333 from milas/hack-user-agent
feat(cli): report more useful User-Agent on engine API requests
This commit is contained in:
commit
dbe7819fd4
20
cmd/main.go
20
cmd/main.go
|
@ -24,6 +24,7 @@ import (
|
||||||
"github.com/docker/cli/cli-plugins/plugin"
|
"github.com/docker/cli/cli-plugins/plugin"
|
||||||
"github.com/docker/cli/cli/command"
|
"github.com/docker/cli/cli/command"
|
||||||
"github.com/docker/compose/v2/cmd/cmdtrace"
|
"github.com/docker/compose/v2/cmd/cmdtrace"
|
||||||
|
"github.com/docker/docker/client"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"github.com/docker/compose/v2/cmd/compatibility"
|
"github.com/docker/compose/v2/cmd/compatibility"
|
||||||
|
@ -42,6 +43,9 @@ func pluginMain() {
|
||||||
if err := plugin.PersistentPreRunE(cmd, args); err != nil {
|
if err := plugin.PersistentPreRunE(cmd, args); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// compose-specific initialization
|
||||||
|
dockerCliPostInitialize(dockerCli)
|
||||||
|
|
||||||
// TODO(milas): add an env var to enable logging from the
|
// TODO(milas): add an env var to enable logging from the
|
||||||
// OTel components for debugging purposes
|
// OTel components for debugging purposes
|
||||||
_ = cmdtrace.Setup(cmd, dockerCli, os.Args[1:])
|
_ = cmdtrace.Setup(cmd, dockerCli, os.Args[1:])
|
||||||
|
@ -67,6 +71,22 @@ func pluginMain() {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// dockerCliPostInitialize performs Compose-specific configuration for the
|
||||||
|
// command.Cli instance provided by the plugin.Run() initialization.
|
||||||
|
//
|
||||||
|
// NOTE: This must be called AFTER plugin.PersistentPreRunE.
|
||||||
|
func dockerCliPostInitialize(dockerCli command.Cli) {
|
||||||
|
// HACK(milas): remove once docker/cli#4574 is merged; for now,
|
||||||
|
// set it in a rather roundabout way by grabbing the underlying
|
||||||
|
// concrete client and manually invoking an option on it
|
||||||
|
_ = dockerCli.Apply(func(cli *command.DockerCli) error {
|
||||||
|
if mobyClient, ok := cli.Client().(*client.Client); ok {
|
||||||
|
_ = client.WithUserAgent("compose/" + internal.Version)(mobyClient)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
if plugin.RunningStandalone() {
|
if plugin.RunningStandalone() {
|
||||||
os.Args = append([]string{"docker"}, compatibility.Convert(os.Args[1:])...)
|
os.Args = append([]string{"docker"}, compatibility.Convert(os.Args[1:])...)
|
||||||
|
|
Loading…
Reference in New Issue