mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-05-18 00:47:48 +08:00
enable trace delegation for docker/remote driver
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
parent
f35b2b7cab
commit
f54a67de6d
@ -8,6 +8,7 @@ import (
|
|||||||
"github.com/docker/buildx/driver"
|
"github.com/docker/buildx/driver"
|
||||||
"github.com/docker/buildx/util/progress"
|
"github.com/docker/buildx/util/progress"
|
||||||
"github.com/moby/buildkit/client"
|
"github.com/moby/buildkit/client"
|
||||||
|
"github.com/moby/buildkit/util/tracing/detect"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -51,11 +52,22 @@ func (d *Driver) Rm(ctx context.Context, force, rmVolume, rmDaemon bool) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Client(ctx context.Context) (*client.Client, error) {
|
func (d *Driver) Client(ctx context.Context) (*client.Client, error) {
|
||||||
return client.New(ctx, "", client.WithContextDialer(func(context.Context, string) (net.Conn, error) {
|
opts := []client.ClientOpt{
|
||||||
return d.DockerAPI.DialHijack(ctx, "/grpc", "h2c", nil)
|
client.WithContextDialer(func(context.Context, string) (net.Conn, error) {
|
||||||
}), client.WithSessionDialer(func(ctx context.Context, proto string, meta map[string][]string) (net.Conn, error) {
|
return d.DockerAPI.DialHijack(ctx, "/grpc", "h2c", nil)
|
||||||
return d.DockerAPI.DialHijack(ctx, "/session", proto, meta)
|
}), client.WithSessionDialer(func(ctx context.Context, proto string, meta map[string][]string) (net.Conn, error) {
|
||||||
}))
|
return d.DockerAPI.DialHijack(ctx, "/session", proto, meta)
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
|
||||||
|
exp, err := detect.Exporter()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if td, ok := exp.(client.TracerDelegate); ok {
|
||||||
|
opts = append(opts, client.WithTracerDelegate(td))
|
||||||
|
}
|
||||||
|
return client.New(ctx, "", opts...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Features(ctx context.Context) map[driver.Feature]bool {
|
func (d *Driver) Features(ctx context.Context) map[driver.Feature]bool {
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"github.com/docker/buildx/driver"
|
"github.com/docker/buildx/driver"
|
||||||
"github.com/docker/buildx/util/progress"
|
"github.com/docker/buildx/util/progress"
|
||||||
"github.com/moby/buildkit/client"
|
"github.com/moby/buildkit/client"
|
||||||
|
"github.com/moby/buildkit/util/tracing/detect"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/backoff"
|
"google.golang.org/grpc/backoff"
|
||||||
)
|
)
|
||||||
@ -72,6 +73,14 @@ func (d *Driver) Client(ctx context.Context) (*client.Client, error) {
|
|||||||
grpc.WithConnectParams(grpc.ConnectParams{Backoff: backoffConfig}),
|
grpc.WithConnectParams(grpc.ConnectParams{Backoff: backoffConfig}),
|
||||||
))
|
))
|
||||||
|
|
||||||
|
exp, err := detect.Exporter()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if td, ok := exp.(client.TracerDelegate); ok {
|
||||||
|
opts = append(opts, client.WithTracerDelegate(td))
|
||||||
|
}
|
||||||
|
|
||||||
if d.tlsOpts != nil {
|
if d.tlsOpts != nil {
|
||||||
opts = append(opts, []client.ClientOpt{
|
opts = append(opts, []client.ClientOpt{
|
||||||
client.WithServerConfig(d.tlsOpts.serverName, d.tlsOpts.caCert),
|
client.WithServerConfig(d.tlsOpts.serverName, d.tlsOpts.caCert),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user