Skip to content

Commit f647dbd

Browse files
authored
Merge pull request #34 from ahmetozer/fix/33
Fix/33
2 parents 665b45f + 65d1d5b commit f647dbd

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

pkg/container/cruntime/mount.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ func Touch(path string) error {
240240
if os.IsNotExist(err) {
241241
os.MkdirAll(filepath.Dir(path), 0o0600)
242242
if !createTry {
243+
createTry = true
243244
goto CREATE_FILE
244245
}
245246
} else if err != nil {

pkg/container/cruntime/resolv-host.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,14 @@ func createResolv(c *config.Config, d *[]byte) error {
3838
}
3939
}
4040

41+
if info, err := os.Lstat("/etc/resolv.conf"); err == nil {
42+
// Check if it's a symlink
43+
if info.Mode()&os.ModeSymlink != 0 {
44+
slog.Warn("symlink detected", "info", "/etc/resolv.conf is not a regular file, it will deleted. To keep orginal use --resolv=image")
45+
}
46+
os.Remove("/etc/resolv.conf")
47+
}
48+
4149
if strings.Contains(".", c.Resolv) || strings.Contains(":", c.Resolv) {
4250
*d = nil
4351
nameServers := strings.Split(c.Resolv, ";")
@@ -87,6 +95,16 @@ func createHosts(c *config.Config, d *[]byte) error {
8795
slog.Debug("unable to write /etc/hosts", "path", path.Join(sandalChildWorkdir, "/etc/hosts"))
8896
return err
8997
}
98+
99+
f, err := os.OpenFile(path.Join(sandalChildWorkdir, "/etc/hosts"), os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
100+
if err != nil {
101+
return err
102+
}
103+
defer f.Close()
104+
if _, err = f.WriteString(fmt.Sprintf("127.0.0.1\t%s\n::1\t%s\n", c.Name, c.Name)); err != nil {
105+
return err
106+
}
107+
90108
err = mount(path.Join(sandalChildWorkdir, "/etc/hosts"), "/etc/hosts", "tmpfs", syscall.MS_BIND, "ro")
91109
return err
92110
}

0 commit comments

Comments
 (0)