build: pass down the cgroup manager to buildah

Pass down the cgroup manager to use to buildah.

Closes: https://github.com/containers/libpod/issues/3938

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
Giuseppe Scrivano
2019-09-05 09:07:52 +02:00
parent 30cbb00915
commit 06f94bef1f
2 changed files with 21 additions and 0 deletions

View File

@ -10,6 +10,7 @@ import (
"github.com/containers/buildah/imagebuildah" "github.com/containers/buildah/imagebuildah"
buildahcli "github.com/containers/buildah/pkg/cli" buildahcli "github.com/containers/buildah/pkg/cli"
"github.com/containers/libpod/cmd/podman/cliconfig" "github.com/containers/libpod/cmd/podman/cliconfig"
"github.com/containers/libpod/libpod"
"github.com/containers/libpod/pkg/adapter" "github.com/containers/libpod/pkg/adapter"
"github.com/docker/go-units" "github.com/docker/go-units"
"github.com/opencontainers/runtime-spec/specs-go" "github.com/opencontainers/runtime-spec/specs-go"
@ -225,6 +226,14 @@ func buildCmd(c *cliconfig.BuildValues) error {
for _, arg := range c.RuntimeFlags { for _, arg := range c.RuntimeFlags {
runtimeFlags = append(runtimeFlags, "--"+arg) runtimeFlags = append(runtimeFlags, "--"+arg)
} }
conf, err := runtime.GetConfig()
if err != nil {
return err
}
if conf != nil && conf.CgroupManager == libpod.SystemdCgroupsManager {
runtimeFlags = append(runtimeFlags, "--systemd-cgroup")
}
// end from buildah // end from buildah
defer runtime.DeferredShutdown(false) defer runtime.DeferredShutdown(false)

View File

@ -113,6 +113,18 @@ func (r RemoteRuntime) DeferredShutdown(force bool) {
} }
} }
// RuntimeConfig is a bogus wrapper for compat with the libpod runtime
type RuntimeConfig struct {
// CGroupManager is the CGroup Manager to use
// Valid values are "cgroupfs" and "systemd"
CgroupManager string
}
// Shutdown is a bogus wrapper for compat with the libpod runtime
func (r *RemoteRuntime) GetConfig() (*RuntimeConfig, error) {
return nil, nil
}
// Shutdown is a bogus wrapper for compat with the libpod runtime // Shutdown is a bogus wrapper for compat with the libpod runtime
func (r RemoteRuntime) Shutdown(force bool) error { func (r RemoteRuntime) Shutdown(force bool) error {
return nil return nil