Fix calculating path for copying ownership (#1859)
* Fix calculating path for copying ownership * fix CI
This commit is contained in:
parent
7065921aa4
commit
e38b0c8d90
|
|
@ -1,3 +1,17 @@
|
|||
# Copyright 2021 Google, Inc. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM alpine:3.11 as builder
|
||||
|
||||
RUN mkdir -p /myapp/somedir \
|
||||
|
|
|
|||
|
|
@ -905,7 +905,7 @@ func CopyFileOrSymlink(src string, destDir string, root string) error {
|
|||
if err != nil {
|
||||
return errors.Wrap(err, "copying file")
|
||||
}
|
||||
err = CopyOwnership(src, destDir)
|
||||
err = CopyOwnership(src, destDir, root)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "copying ownership")
|
||||
}
|
||||
|
|
@ -913,7 +913,7 @@ func CopyFileOrSymlink(src string, destDir string, root string) error {
|
|||
}
|
||||
|
||||
// CopyOwnership copies the file or directory ownership recursively at src to dest
|
||||
func CopyOwnership(src string, destDir string) error {
|
||||
func CopyOwnership(src string, destDir string, root string) error {
|
||||
return filepath.Walk(src, func(path string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -921,7 +921,7 @@ func CopyOwnership(src string, destDir string) error {
|
|||
if IsSymlink(info) {
|
||||
return nil
|
||||
}
|
||||
relPath, err := filepath.Rel(filepath.Dir(src), path)
|
||||
relPath, err := filepath.Rel(root, path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -955,9 +955,7 @@ func CopyOwnership(src string, destDir string) error {
|
|||
return errors.Wrap(err, "reading ownership")
|
||||
}
|
||||
stat := info.Sys().(*syscall.Stat_t)
|
||||
err = os.Chown(destPath, int(stat.Uid), int(stat.Gid))
|
||||
|
||||
return nil
|
||||
return os.Chown(destPath, int(stat.Uid), int(stat.Gid))
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue