Inconsistent --tmpfs behavior
This fix tries to address the issue raised in #22420. When `--tmpfs` is specified with `/tmp`, the default value is `rw,nosuid,nodev,noexec,relatime,size=65536k`. When `--tmpfs` is specified with `/tmp:rw`, then the value changed to `rw,nosuid,nodev,noexec,relatime`. The reason for such an inconsistency is because docker tries to add `size=65536k` option only when user provides no option. This fix tries to address this issue by always pre-progating `size=65536k` along with `rw,nosuid,nodev,noexec,relatime`. If user provides a different value (e.g., `size=8192k`), it will override the `size=65536k` anyway since the combined options will be parsed and merged to remove any duplicates. Additional test cases have been added to cover the changes in this fix. This fix fixes #22420. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This commit is contained in:
parent
aabf518e4e
commit
fb9132ae90
2 changed files with 129 additions and 49 deletions
|
@ -137,3 +137,26 @@ func TestGetMounts(t *testing.T) {
|
|||
t.Fatal("/ should be mounted at least")
|
||||
}
|
||||
}
|
||||
|
||||
func TestMergeTmpfsOptions(t *testing.T) {
|
||||
options := []string{"noatime", "ro", "size=10k", "defaults", "atime", "defaults", "rw", "rprivate", "size=1024k", "slave"}
|
||||
expected := []string{"atime", "rw", "size=1024k", "slave"}
|
||||
merged, err := MergeTmpfsOptions(options)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(expected) != len(merged) {
|
||||
t.Fatalf("Expected %s got %s", expected, merged)
|
||||
}
|
||||
for index := range merged {
|
||||
if merged[index] != expected[index] {
|
||||
t.Fatalf("Expected %s for the %dth option, got %s", expected, index, merged)
|
||||
}
|
||||
}
|
||||
|
||||
options = []string{"noatime", "ro", "size=10k", "atime", "rw", "rprivate", "size=1024k", "slave", "size"}
|
||||
_, err = MergeTmpfsOptions(options)
|
||||
if err == nil {
|
||||
t.Fatal("Expected error got nil")
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue