mirror of
https://github.com/containers/podman.git
synced 2025-12-09 23:27:09 +08:00
Add darwin support for remote-client
Add the ability to cross-compile podman remote for OSX. Also, add image exists and tag to remote-client. Signed-off-by: baude <bbaude@redhat.com>
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
"github.com/containers/libpod/cmd/podman/libpodruntime"
|
||||
"github.com/containers/libpod/libpod"
|
||||
"github.com/containers/libpod/libpod/adapter"
|
||||
"github.com/containers/libpod/libpod/image"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/urfave/cli"
|
||||
@@ -66,13 +67,15 @@ func imageExistsCmd(c *cli.Context) error {
|
||||
if len(args) > 1 || len(args) < 1 {
|
||||
return errors.New("you may only check for the existence of one image at a time")
|
||||
}
|
||||
runtime, err := libpodruntime.GetRuntime(c)
|
||||
localRuntime, err := adapter.GetRuntime(c)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "could not get runtime")
|
||||
}
|
||||
defer runtime.Shutdown(false)
|
||||
if _, err := runtime.ImageRuntime().NewFromLocal(args[0]); err != nil {
|
||||
if errors.Cause(err) == image.ErrNoSuchImage {
|
||||
defer localRuntime.Runtime.Shutdown(false)
|
||||
if _, err := localRuntime.NewImageFromLocal(args[0]); err != nil {
|
||||
//TODO we need to ask about having varlink defined errors exposed
|
||||
//so we can reuse them
|
||||
if errors.Cause(err) == image.ErrNoSuchImage || err.Error() == "io.podman.ImageNotFound" {
|
||||
os.Exit(1)
|
||||
}
|
||||
return err
|
||||
|
||||
@@ -120,7 +120,7 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
args := c.Args()
|
||||
if args.Present() {
|
||||
if args.Present() && rootless.IsRootless() {
|
||||
if _, notRequireRootless := cmdsNotRequiringRootless[args.First()]; !notRequireRootless {
|
||||
became, ret, err := rootless.BecomeRootInUserNS()
|
||||
if err != nil {
|
||||
@@ -265,11 +265,10 @@ func main() {
|
||||
Usage: "output logging information to syslog as well as the console",
|
||||
},
|
||||
}
|
||||
if _, err := os.Stat("/etc/containers/registries.conf"); err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
logrus.Warn("unable to find /etc/containers/registries.conf. some podman (image shortnames) commands may be limited")
|
||||
}
|
||||
}
|
||||
// Check if /etc/containers/registries.conf exists when running in
|
||||
// in a local environment.
|
||||
CheckForRegistries()
|
||||
|
||||
if err := app.Run(os.Args); err != nil {
|
||||
if debug {
|
||||
logrus.Errorf(err.Error())
|
||||
|
||||
17
cmd/podman/platform_linux.go
Normal file
17
cmd/podman/platform_linux.go
Normal file
@@ -0,0 +1,17 @@
|
||||
// +build linux
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func CheckForRegistries() {
|
||||
if _, err := os.Stat("/etc/containers/registries.conf"); err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
logrus.Warn("unable to find /etc/containers/registries.conf. some podman (image shortnames) commands may be limited")
|
||||
}
|
||||
}
|
||||
}
|
||||
6
cmd/podman/platform_unsupported.go
Normal file
6
cmd/podman/platform_unsupported.go
Normal file
@@ -0,0 +1,6 @@
|
||||
// +build !linux
|
||||
|
||||
package main
|
||||
|
||||
func CheckForRegistries() {
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/containers/libpod/cmd/podman/libpodruntime"
|
||||
"github.com/containers/libpod/libpod/adapter"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/urfave/cli"
|
||||
)
|
||||
@@ -23,13 +23,13 @@ func tagCmd(c *cli.Context) error {
|
||||
if len(args) < 2 {
|
||||
return errors.Errorf("image name and at least one new name must be specified")
|
||||
}
|
||||
runtime, err := libpodruntime.GetRuntime(c)
|
||||
localRuntime, err := adapter.GetRuntime(c)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "could not create runtime")
|
||||
}
|
||||
defer runtime.Shutdown(false)
|
||||
defer localRuntime.Runtime.Shutdown(false)
|
||||
|
||||
newImage, err := runtime.ImageRuntime().NewFromLocal(args[0])
|
||||
newImage, err := localRuntime.NewImageFromLocal(args[0])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user