Use strconv.Atoi in stead of parseint

master
Hugo Thunnissen 2 years ago
parent 8cb102809d
commit 4f14c4e8d9

@ -34,7 +34,8 @@ func EntryPoint(command []string) error {
command = []string{"/bin/bash", "-i"}
}
uid, err := strconv.ParseInt(os.Getenv("WORKSPACE_USER"), 10, 64)
uidString := os.Getenv("WORKSPACE_USER")
uid, err := strconv.Atoi(uidString)
if err != nil {
return fmt.Errorf(
"Failed to parse UID from WORKSPACE_USER env var with contents \"%s\". Error: %w",
@ -43,7 +44,7 @@ func EntryPoint(command []string) error {
)
}
dockerGid, err := strconv.ParseInt(os.Getenv("WORKSPACE_DOCKER_GID"), 10, 64)
dockerGid, err := strconv.Atoi(os.Getenv("WORKSPACE_DOCKER_GID"))
if err != nil {
return fmt.Errorf(
"Failed to parse GID from WORKSPACE_DOCKER_GID env var with contents \"%s\". Error: %w",
@ -52,17 +53,17 @@ func EntryPoint(command []string) error {
)
}
err = syscall.Setgroups([]int{int(dockerGid)})
err = syscall.Setgroups([]int{dockerGid, sudoGid})
if err != nil {
return err
}
err = syscall.Setgid(int(uid))
err = syscall.Setgid(uid)
if err != nil {
return err
}
err = syscall.Setuid(int(uid))
err = syscall.Setuid(uid)
if err != nil {
return err
}
@ -83,7 +84,11 @@ func Run(detach bool, command []string) error {
return err
}
uid := strconv.Itoa(syscall.Getuid())
curUser, err := user.Current()
if err != nil {
return err
}
home := os.Getenv("HOME")
dockerGroup, err := user.LookupGroup("docker")
if err != nil {
@ -94,7 +99,8 @@ func Run(detach bool, command []string) error {
"/bin/docker", "run", "--network=host",
"--workdir=" + workDir,
"-e", "DISPLAY=" + os.Getenv("DISPLAY"),
"-e", "WORKSPACE_USER=" + uid,
"-e", "WORKSPACE_USER=" + curUser.Uid,
"-e", "WORKSPACE_USERNAME=" + curUser.Name,
"-e", "WORKSPACE_DOCKER_GID=" + dockerGroup.Gid,
"-e", "HOME=" + home,
"-h", os.Getenv("HOSTNAME"),
@ -109,11 +115,11 @@ func Run(detach bool, command []string) error {
"-v", home + ":" + home,
"-e", "SSH_AGENT_LAUNCHER=" + os.Getenv("SSH_AGENT_LAUNCHER"),
"-e", "SSH_AUTH_SOCK=" + os.Getenv("SSH_AUTH_SOCK"),
"-e", "PULSE_SERVER=unix:/run/user/" + uid + "/pulse/native",
"-e", "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/" + uid + "/bus",
"-e", "PULSE_SERVER=unix:/run/user/" + curUser.Uid + "/pulse/native",
"-e", "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/" + curUser.Uid + "/bus",
"-e", "TERM=" + os.Getenv("TERM"),
"-v", "/tmp/.X11-unix:/tmp/.X11-unix",
"-v", "/run/user/" + uid + ":/run/user/" + uid,
"-v", "/run/user/" + curUser.Uid + ":/run/user/" + curUser.Uid,
"-v", "/dev/snd",
}
@ -207,7 +213,7 @@ func main() {
&detach,
"detach",
false,
"Whether or not to detach from the container afnter running the command",
"Whether or not to detach from the container after running the command",
)
switch cmd {

Loading…
Cancel
Save