summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'cmd')
-rw-r--r--cmd/podman/shared/create.go3
-rw-r--r--cmd/podmanV2/common/specgen.go4
-rw-r--r--cmd/podmanV2/registry/config.go50
3 files changed, 52 insertions, 5 deletions
diff --git a/cmd/podman/shared/create.go b/cmd/podman/shared/create.go
index 94b1e63dc..f8178a841 100644
--- a/cmd/podman/shared/create.go
+++ b/cmd/podman/shared/create.go
@@ -16,6 +16,7 @@ import (
"github.com/containers/image/v5/manifest"
"github.com/containers/libpod/cmd/podman/shared/parse"
"github.com/containers/libpod/libpod"
+ "github.com/containers/libpod/libpod/define"
"github.com/containers/libpod/libpod/image"
ann "github.com/containers/libpod/pkg/annotations"
"github.com/containers/libpod/pkg/autoupdate"
@@ -715,7 +716,7 @@ func ParseCreateOpts(ctx context.Context, c *GenericCLIResults, runtime *libpod.
// both
memorySwappiness := c.Int64("memory-swappiness")
- logDriver := libpod.KubernetesLogging
+ logDriver := define.KubernetesLogging
if c.Changed("log-driver") {
logDriver = c.String("log-driver")
}
diff --git a/cmd/podmanV2/common/specgen.go b/cmd/podmanV2/common/specgen.go
index 5245e206e..2232fb4ba 100644
--- a/cmd/podmanV2/common/specgen.go
+++ b/cmd/podmanV2/common/specgen.go
@@ -11,7 +11,7 @@ import (
"github.com/containers/image/v5/manifest"
"github.com/containers/libpod/cmd/podmanV2/parse"
- "github.com/containers/libpod/libpod"
+ "github.com/containers/libpod/libpod/define"
ann "github.com/containers/libpod/pkg/annotations"
envLib "github.com/containers/libpod/pkg/env"
ns "github.com/containers/libpod/pkg/namespaces"
@@ -324,7 +324,7 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string
if s.LogConfiguration == nil {
s.LogConfiguration = &specgen.LogConfig{}
}
- s.LogConfiguration.Driver = libpod.KubernetesLogging
+ s.LogConfiguration.Driver = define.KubernetesLogging
if ld := c.LogDriver; len(ld) > 0 {
s.LogConfiguration.Driver = ld
}
diff --git a/cmd/podmanV2/registry/config.go b/cmd/podmanV2/registry/config.go
index e68009a50..de9d1f262 100644
--- a/cmd/podmanV2/registry/config.go
+++ b/cmd/podmanV2/registry/config.go
@@ -1,13 +1,17 @@
package registry
import (
+ "fmt"
"os"
+ "path/filepath"
"runtime"
"strings"
"github.com/containers/common/pkg/config"
- "github.com/containers/libpod/libpod"
"github.com/containers/libpod/pkg/domain/entities"
+ "github.com/containers/libpod/pkg/rootless"
+ "github.com/containers/libpod/pkg/util"
+ "github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
@@ -21,7 +25,7 @@ var (
// NewPodmanConfig creates a PodmanConfig from the environment
func NewPodmanConfig() entities.PodmanConfig {
- if err := libpod.SetXdgDirs(); err != nil {
+ if err := setXdgDirs(); err != nil {
logrus.Errorf(err.Error())
os.Exit(1)
}
@@ -57,3 +61,45 @@ func NewPodmanConfig() entities.PodmanConfig {
}
return entities.PodmanConfig{Config: cfg, EngineMode: mode}
}
+
+// SetXdgDirs ensures the XDG_RUNTIME_DIR env and XDG_CONFIG_HOME variables are set.
+// containers/image uses XDG_RUNTIME_DIR to locate the auth file, XDG_CONFIG_HOME is
+// use for the libpod.conf configuration file.
+func setXdgDirs() error {
+ if !rootless.IsRootless() {
+ return nil
+ }
+
+ // Setup XDG_RUNTIME_DIR
+ runtimeDir := os.Getenv("XDG_RUNTIME_DIR")
+
+ if runtimeDir == "" {
+ var err error
+ runtimeDir, err = util.GetRuntimeDir()
+ if err != nil {
+ return err
+ }
+ }
+ if err := os.Setenv("XDG_RUNTIME_DIR", runtimeDir); err != nil {
+ return errors.Wrapf(err, "cannot set XDG_RUNTIME_DIR")
+ }
+
+ if rootless.IsRootless() && os.Getenv("DBUS_SESSION_BUS_ADDRESS") == "" {
+ sessionAddr := filepath.Join(runtimeDir, "bus")
+ if _, err := os.Stat(sessionAddr); err == nil {
+ os.Setenv("DBUS_SESSION_BUS_ADDRESS", fmt.Sprintf("unix:path=%s", sessionAddr))
+ }
+ }
+
+ // Setup XDG_CONFIG_HOME
+ if cfgHomeDir := os.Getenv("XDG_CONFIG_HOME"); cfgHomeDir == "" {
+ cfgHomeDir, err := util.GetRootlessConfigHomeDir()
+ if err != nil {
+ return err
+ }
+ if err := os.Setenv("XDG_CONFIG_HOME", cfgHomeDir); err != nil {
+ return errors.Wrapf(err, "cannot set XDG_CONFIG_HOME")
+ }
+ }
+ return nil
+}