@@ -2122,7 +2122,7 @@ const renderConfigOption = (option: ConfigOption, isBasic = true) => {
21222122
21232123 const envVars: string[] = [];
21242124 let baseImage = "alpine:edge";
2125- let packageManager = "apk update && \\\n apk add bash git curl sudo ";
2125+ let packageManager = "apk update && \\\n apk add bash git curl";
21262126 let shell = "/bin/ash";
21272127 let portMapping = "8080:8080";
21282128 let volumeMapping = "~/qbt:/root";
@@ -2143,10 +2143,10 @@ const renderConfigOption = (option: ConfigOption, isBasic = true) => {
21432143\tLC_ALL="C.UTF-8" \\
21442144\tDEBIAN_FRONTEND=noninteractive \\
21452145\tapt-get update && \\
2146- \tapt-get install -y git curl sudo `;
2146+ \tapt-get install -y git curl`;
21472147 shell = "/bin/bash";
21482148 } else {
2149- packageManager = "apk update && apk add bash git curl sudo ";
2149+ packageManager = "apk update && apk add bash git curl";
21502150 }
21512151 return; // Don't include this in env vars
21522152 }
@@ -2200,7 +2200,7 @@ const renderConfigOption = (option: ConfigOption, isBasic = true) => {
22002200 : ' && \\\n useradd -ms /bin/bash -u 1000 username && \\\n echo "username ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/username'
22012201 : "";
22022202
2203- // Package manager commands - run as root initially, no sudo needed
2203+ // Package manager commands - add sudo only when running as username
22042204 if (dockerUser === "username") {
22052205 if (baseImage.includes("ubuntu") || baseImage.includes("debian")) {
22062206 packageManager = `LANG="C.UTF-8" \\
@@ -2256,7 +2256,7 @@ ${envVarsFormatted}
22562256
22572257 const envVars: string[] = [];
22582258 let baseImage = "alpine:edge";
2259- let packageManager = "apk update && \\\n apk add bash git curl sudo ";
2259+ let packageManager = "apk update && \\\n apk add bash git curl";
22602260 let shell = "/bin/ash";
22612261 let portMapping = "8080:8080";
22622262 let volumeMapping = "~/qbt:/root";
@@ -2277,10 +2277,10 @@ ${envVarsFormatted}
22772277\tLC_ALL="C.UTF-8" \\
22782278\tDEBIAN_FRONTEND=noninteractive \\
22792279\tapt-get update && \\
2280- \tapt-get install -y git curl sudo `;
2280+ \tapt-get install -y git curl`;
22812281 shell = "/bin/bash";
22822282 } else {
2283- packageManager = "apk update && apk add bash git curl sudo ";
2283+ packageManager = "apk update && apk add bash git curl";
22842284 }
22852285 return; // Don't include this in env vars
22862286 }
@@ -2338,7 +2338,7 @@ ${envVarsFormatted}
23382338 : ' && \\\n useradd -ms /bin/bash -u 1000 username && \\\n echo "username ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/username'
23392339 : "";
23402340
2341- // Package manager commands - run as root initially, no sudo needed
2341+ // Package manager commands - add sudo only when running as username
23422342 if (dockerUser === "username") {
23432343 if (baseImage.includes("ubuntu") || baseImage.includes("debian")) {
23442344 packageManager = `LANG="C.UTF-8" \\
@@ -2405,7 +2405,7 @@ ${envVarsFormatted}
24052405
24062406 const envVars: string[] = [];
24072407 let baseImage = "alpine:edge";
2408- let packageManager = "apk update && \\\n apk add bash git curl sudo ";
2408+ let packageManager = "apk update && \\\n apk add bash git curl";
24092409 let exposedPort = "8080";
24102410 let dockerUser = "root";
24112411
@@ -2420,9 +2420,9 @@ ${envVarsFormatted}
24202420 // Set appropriate package manager based on distro
24212421 if (baseImage.includes("ubuntu") || baseImage.includes("debian")) {
24222422 packageManager =
2423- "apt-get update && \\\n apt-get install -y git curl sudo ";
2423+ "apt-get update && \\\n apt-get install -y git curl";
24242424 } else {
2425- packageManager = "apk update && \\\n apk add bash git curl sudo ";
2425+ packageManager = "apk update && \\\n apk add bash git curl";
24262426 }
24272427 return; // Don't include this in env vars
24282428 }
@@ -2500,6 +2500,15 @@ RUN useradd -ms /bin/bash -u 1000 username && \\
25002500
25012501 const workDir = dockerUser === "username" ? "/home/username" : "/root";
25022502
2503+ // Add sudo to package manager if using non-root user
2504+ if (dockerUser === "username") {
2505+ if (baseImage.includes("ubuntu") || baseImage.includes("debian")) {
2506+ packageManager = packageManager.replace("git curl", "git curl sudo");
2507+ } else {
2508+ packageManager = packageManager.replace("git curl", "git curl sudo");
2509+ }
2510+ }
2511+
25032512 const baseDockerfile = `FROM ${baseImage}
25042513
25052514${debianEnvs}# Install dependencies
0 commit comments