mirror of
https://github.com/clearlinux/docker.git
synced 2026-10-04 07:48:44 +00:00
pkg/archive: adjust chmod bits on windows
This change modifies the chmod bits of build context archives built on windows to preserve the execute bit and remove the r/w bits from grp/others. Also adjusted integ-cli tests to verify permissions based on the platform the tests are running. Fixes #11047. Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
This commit is contained in:
@@ -690,15 +690,15 @@ func TestBuildSixtySteps(t *testing.T) {
|
||||
func TestBuildAddSingleFileToRoot(t *testing.T) {
|
||||
name := "testaddimg"
|
||||
defer deleteImages(name)
|
||||
ctx, err := fakeContext(`FROM busybox
|
||||
ctx, err := fakeContext(fmt.Sprintf(`FROM busybox
|
||||
RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd
|
||||
RUN echo 'dockerio:x:1001:' >> /etc/group
|
||||
RUN touch /exists
|
||||
RUN chown dockerio.dockerio /exists
|
||||
ADD test_file /
|
||||
RUN [ $(ls -l /test_file | awk '{print $3":"$4}') = 'root:root' ]
|
||||
RUN [ $(ls -l /test_file | awk '{print $1}') = '-rw-r--r--' ]
|
||||
RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`,
|
||||
RUN [ $(ls -l /test_file | awk '{print $1}') = '%s' ]
|
||||
RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, expectedFileChmod),
|
||||
map[string]string{
|
||||
"test_file": "test1",
|
||||
})
|
||||
@@ -1263,7 +1263,7 @@ RUN [ $(ls -l /exists/test_file | awk '{print $3":"$4}') = 'root:root' ]`,
|
||||
func TestBuildAddWholeDirToRoot(t *testing.T) {
|
||||
name := "testaddwholedirtoroot"
|
||||
defer deleteImages(name)
|
||||
ctx, err := fakeContext(`FROM busybox
|
||||
ctx, err := fakeContext(fmt.Sprintf(`FROM busybox
|
||||
RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd
|
||||
RUN echo 'dockerio:x:1001:' >> /etc/group
|
||||
RUN touch /exists
|
||||
@@ -1272,8 +1272,8 @@ ADD test_dir /test_dir
|
||||
RUN [ $(ls -l / | grep test_dir | awk '{print $3":"$4}') = 'root:root' ]
|
||||
RUN [ $(ls -l / | grep test_dir | awk '{print $1}') = 'drwxr-xr-x' ]
|
||||
RUN [ $(ls -l /test_dir/test_file | awk '{print $3":"$4}') = 'root:root' ]
|
||||
RUN [ $(ls -l /test_dir/test_file | awk '{print $1}') = '-rw-r--r--' ]
|
||||
RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`,
|
||||
RUN [ $(ls -l /test_dir/test_file | awk '{print $1}') = '%s' ]
|
||||
RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, expectedFileChmod),
|
||||
map[string]string{
|
||||
"test_dir/test_file": "test1",
|
||||
})
|
||||
@@ -1336,15 +1336,15 @@ RUN [ $(ls -l /usr/bin/suidbin | awk '{print $1}') = '-rwsr-xr-x' ]`,
|
||||
func TestBuildCopySingleFileToRoot(t *testing.T) {
|
||||
name := "testcopysinglefiletoroot"
|
||||
defer deleteImages(name)
|
||||
ctx, err := fakeContext(`FROM busybox
|
||||
ctx, err := fakeContext(fmt.Sprintf(`FROM busybox
|
||||
RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd
|
||||
RUN echo 'dockerio:x:1001:' >> /etc/group
|
||||
RUN touch /exists
|
||||
RUN chown dockerio.dockerio /exists
|
||||
COPY test_file /
|
||||
RUN [ $(ls -l /test_file | awk '{print $3":"$4}') = 'root:root' ]
|
||||
RUN [ $(ls -l /test_file | awk '{print $1}') = '-rw-r--r--' ]
|
||||
RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`,
|
||||
RUN [ $(ls -l /test_file | awk '{print $1}') = '%s' ]
|
||||
RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, expectedFileChmod),
|
||||
map[string]string{
|
||||
"test_file": "test1",
|
||||
})
|
||||
@@ -1496,7 +1496,7 @@ RUN [ $(ls -l /exists/test_file | awk '{print $3":"$4}') = 'root:root' ]`,
|
||||
func TestBuildCopyWholeDirToRoot(t *testing.T) {
|
||||
name := "testcopywholedirtoroot"
|
||||
defer deleteImages(name)
|
||||
ctx, err := fakeContext(`FROM busybox
|
||||
ctx, err := fakeContext(fmt.Sprintf(`FROM busybox
|
||||
RUN echo 'dockerio:x:1001:1001::/bin:/bin/false' >> /etc/passwd
|
||||
RUN echo 'dockerio:x:1001:' >> /etc/group
|
||||
RUN touch /exists
|
||||
@@ -1505,8 +1505,8 @@ COPY test_dir /test_dir
|
||||
RUN [ $(ls -l / | grep test_dir | awk '{print $3":"$4}') = 'root:root' ]
|
||||
RUN [ $(ls -l / | grep test_dir | awk '{print $1}') = 'drwxr-xr-x' ]
|
||||
RUN [ $(ls -l /test_dir/test_file | awk '{print $3":"$4}') = 'root:root' ]
|
||||
RUN [ $(ls -l /test_dir/test_file | awk '{print $1}') = '-rw-r--r--' ]
|
||||
RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`,
|
||||
RUN [ $(ls -l /test_dir/test_file | awk '{print $1}') = '%s' ]
|
||||
RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, expectedFileChmod),
|
||||
map[string]string{
|
||||
"test_dir/test_file": "test1",
|
||||
})
|
||||
|
||||
@@ -5,4 +5,6 @@ package main
|
||||
const (
|
||||
// identifies if test suite is running on a unix platform
|
||||
isUnixCli = true
|
||||
|
||||
expectedFileChmod = "-rw-r--r--"
|
||||
)
|
||||
|
||||
@@ -5,4 +5,7 @@ package main
|
||||
const (
|
||||
// identifies if test suite is running on a unix platform
|
||||
isUnixCli = false
|
||||
|
||||
// this is the expected file permission set on windows: gh#11047
|
||||
expectedFileChmod = "-rwx------"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user