mirror of
https://github.com/containers/podman.git
synced 2025-06-06 15:00:40 +08:00
Vendor in latest containers/buildah
Pulls in fix that sets the correct ownership on the working directory during the build process. Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
This commit is contained in:
16
vendor/github.com/containers/buildah/imagebuildah/stage_executor.go
generated
vendored
16
vendor/github.com/containers/buildah/imagebuildah/stage_executor.go
generated
vendored
@ -12,6 +12,7 @@ import (
|
||||
|
||||
"github.com/containers/buildah"
|
||||
buildahdocker "github.com/containers/buildah/docker"
|
||||
"github.com/containers/buildah/pkg/chrootuser"
|
||||
"github.com/containers/buildah/util"
|
||||
cp "github.com/containers/image/v5/copy"
|
||||
"github.com/containers/image/v5/docker/reference"
|
||||
@ -1248,9 +1249,22 @@ func (s *StageExecutor) EnsureContainerPath(path string) error {
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "error ensuring container path %q", path)
|
||||
}
|
||||
_, err = os.Lstat(targetPath)
|
||||
|
||||
_, err = os.Stat(targetPath)
|
||||
if err != nil && os.IsNotExist(err) {
|
||||
err = os.MkdirAll(targetPath, 0755)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "error creating directory path %q", targetPath)
|
||||
}
|
||||
// get the uid and gid so that we can set the correct permissions on the
|
||||
// working directory
|
||||
uid, gid, _, err := chrootuser.GetUser(s.mountPoint, s.builder.User())
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "error getting uid and gid for user %q", s.builder.User())
|
||||
}
|
||||
if err = os.Chown(targetPath, int(uid), int(gid)); err != nil {
|
||||
return errors.Wrapf(err, "error setting ownership on %q", targetPath)
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "error ensuring container path %q", path)
|
||||
|
5
vendor/github.com/containers/buildah/run_linux.go
generated
vendored
5
vendor/github.com/containers/buildah/run_linux.go
generated
vendored
@ -678,6 +678,11 @@ func runUsingRuntime(isolation Isolation, options RunOptions, configureNetwork b
|
||||
runtime := options.Runtime
|
||||
if runtime == "" {
|
||||
runtime = util.Runtime()
|
||||
|
||||
localRuntime := util.FindLocalRuntime(runtime)
|
||||
if localRuntime != "" {
|
||||
runtime = localRuntime
|
||||
}
|
||||
}
|
||||
|
||||
// Default to just passing down our stdio.
|
||||
|
31
vendor/github.com/containers/buildah/util/util.go
generated
vendored
31
vendor/github.com/containers/buildah/util/util.go
generated
vendored
@ -10,6 +10,7 @@ import (
|
||||
"sync"
|
||||
"syscall"
|
||||
|
||||
"github.com/containers/common/pkg/config"
|
||||
"github.com/containers/image/v5/docker/reference"
|
||||
"github.com/containers/image/v5/pkg/sysregistriesv2"
|
||||
"github.com/containers/image/v5/signature"
|
||||
@ -432,3 +433,33 @@ var (
|
||||
isUnified bool
|
||||
isUnifiedErr error
|
||||
)
|
||||
|
||||
// fileExistsAndNotADir - Check to see if a file exists
|
||||
// and that it is not a directory.
|
||||
func fileExistsAndNotADir(path string) bool {
|
||||
file, err := os.Stat(path)
|
||||
|
||||
if file == nil || err != nil || os.IsNotExist(err) {
|
||||
return false
|
||||
}
|
||||
return !file.IsDir()
|
||||
}
|
||||
|
||||
// FindLocalRuntime find the local runtime of the
|
||||
// system searching through the config file for
|
||||
// possible locations.
|
||||
func FindLocalRuntime(runtime string) string {
|
||||
var localRuntime string
|
||||
conf, err := config.Default()
|
||||
if err != nil {
|
||||
logrus.Debugf("Error loading container config when searching for local runtime.")
|
||||
return localRuntime
|
||||
}
|
||||
for _, val := range conf.Libpod.OCIRuntimes[runtime] {
|
||||
if fileExistsAndNotADir(val) {
|
||||
localRuntime = val
|
||||
break
|
||||
}
|
||||
}
|
||||
return localRuntime
|
||||
}
|
||||
|
Reference in New Issue
Block a user