diff --git a/main.go b/main.go index dfe0d4b..12c1dc1 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,7 @@ import ( "errors" "flag" "fmt" + "log" "os" "os/exec" "os/user" @@ -112,29 +113,32 @@ func EntryPoint(command []string) error { ) } - err = AddUser(os.Getenv("WORKSPACE_USERNAME"), uidString) - if err != nil { - return err - } + if uid != 0 { + log.Printf("UID: %d", uid) + err = AddUser(os.Getenv("WORKSPACE_USERNAME"), uidString) + if err != nil { + return err + } - err = AddGroup("docker", dockerGidString) - if err != nil { - return err - } + err = AddGroup("docker", dockerGidString) + if err != nil { + return err + } - err = syscall.Setgroups([]int{dockerGid}) - if err != nil { - return err - } + err = syscall.Setgroups([]int{dockerGid}) + if err != nil { + return err + } - err = syscall.Setgid(int(uid)) - if err != nil { - return err - } + err = syscall.Setgid(int(uid)) + if err != nil { + return err + } - err = syscall.Setuid(int(uid)) - if err != nil { - return err + err = syscall.Setuid(int(uid)) + if err != nil { + return err + } } path, err := exec.LookPath(command[0]) @@ -167,6 +171,7 @@ func Run(detach bool, mounts []string, command []string) error { dockerCommand := []string{ "/bin/docker", "run", "--network=host", "--workdir=" + workDir, + "--rm", "-e", "DISPLAY=" + os.Getenv("DISPLAY"), "-e", "WORKSPACE_USER=" + curUser.Uid, "-e", "WORKSPACE_USERNAME=" + curUser.Username,