support emulated version detection

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
Tonis Tiigi
2020-07-26 21:31:00 -07:00
parent 5c9a8e9973
commit e531875ff0
7 changed files with 74 additions and 2 deletions

View File

@ -34,6 +34,7 @@ import (
"github.com/moby/buildkit/util/progress/progressui"
"github.com/pkg/errors"
fsutiltypes "github.com/tonistiigi/fsutil/types"
"github.com/tonistiigi/go-rosetta"
"golang.org/x/sync/errgroup"
)
@ -222,7 +223,9 @@ func runBuildBuildKit(dockerCli command.Cli, options buildOptions) error {
}
if strings.EqualFold(options.platform, "local") {
options.platform = platforms.DefaultString()
p := platforms.DefaultSpec()
p.Architecture = rosetta.NativeArch() // current binary architecture might be emulated
options.platform = platforms.Format(p)
}
eg.Go(func() error {

View File

@ -20,6 +20,7 @@ import (
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
"github.com/tonistiigi/go-rosetta"
kubernetesClient "k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)
@ -125,6 +126,14 @@ func reformatDate(buildTime string) string {
return buildTime
}
func arch() string {
arch := runtime.GOARCH
if rosetta.Enabled() {
arch += " (rosetta)"
}
return arch
}
func runVersion(dockerCli command.Cli, opts *versionOptions) error {
var err error
tmpl, err := newVersionTemplate(opts.format)
@ -147,7 +156,7 @@ func runVersion(dockerCli command.Cli, opts *versionOptions) error {
GitCommit: version.GitCommit,
BuildTime: reformatDate(version.BuildTime),
Os: runtime.GOOS,
Arch: runtime.GOARCH,
Arch: arch(),
Experimental: dockerCli.ClientInfo().HasExperimental,
Context: dockerCli.CurrentContext(),
},