@@ -1990,7 +1990,7 @@ const renderConfigOption = (option: ConfigOption, isBasic = true) => {
19901990
19911991 const envVars: string[] = [];
19921992 let baseImage = "alpine:edge";
1993- let packageManager = "apk update && apk add bash git curl sudo";
1993+ let packageManager = "apk update && \\\n apk add bash git curl sudo";
19941994 let shell = "/bin/ash";
19951995 let portMapping = "8080:8080";
19961996 let volumeMapping = "~/qbt:/root";
@@ -2052,18 +2052,18 @@ const renderConfigOption = (option: ConfigOption, isBasic = true) => {
20522052 ? "bash <(curl -sL usrdx.github.io/s/qbt.bash) all"
20532053 : "bash <(curl -sL usrdx.github.io/s/qbt.bash) bootstrap_deps all";
20542054 const scriptCommand = dockerUser === "username"
2055- ? `su - username -c 'cd /home/username && ${baseScriptCommand}' `
2055+ ? `su - username -c " ${baseScriptCommand}" `
20562056 : baseScriptCommand;
20572057
20582058 // Add user setup commands when using username
20592059 const userSetup = dockerUser === "username" ?
20602060 (baseImage.includes("alpine")) ?
2061- " && adduser -h /home/username -Ds /bin/bash -u 1000 username && echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username" :
2061+ " && \\\n adduser -h /home/username -Ds /bin/bash -u 1000 username && \\\n echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username" :
20622062 (baseImage.includes("ubuntu") && baseImage.includes("noble")) ?
2063- " && usermod -md /home/username -l username ubuntu && groupmod -n username ubuntu && echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username && chmod 0440 /etc/sudoers.d/username" :
2063+ " && \\\n usermod -md /home/username -l username ubuntu && \\\n groupmod -n username ubuntu && \\\n echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username && \\\n chmod 0440 /etc/sudoers.d/username" :
20642064 (baseImage.includes("ubuntu") || baseImage.includes("debian")) ?
2065- " && if grep -q VERSION_CODENAME=noble /etc/os-release 2>/dev/null; then usermod -md /home/username -l username ubuntu && groupmod -n username ubuntu; else useradd -ms /bin/bash -u 1000 username; fi && echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username && chmod 0440 /etc/sudoers.d/username" :
2066- " && useradd -ms /bin/bash -u 1000 username && echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username"
2065+ " && \\\n if grep -q VERSION_CODENAME=noble /etc/os-release 2>/dev/null; then \\\n usermod -md /home/username -l username ubuntu && \\\n groupmod -n username ubuntu; \\\n else \\\n useradd -ms /bin/bash -u 1000 username; \\\n fi && \\\n echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username && \\\n chmod 0440 /etc/sudoers.d/username" :
2066+ " && \\\n useradd -ms /bin/bash -u 1000 username && \\\n echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username"
20672067 : "";
20682068
20692069 // Package manager commands - run as root initially, no sudo needed
@@ -2122,7 +2122,7 @@ ${envVarsFormatted}
21222122
21232123 const envVars: string[] = [];
21242124 let baseImage = "alpine:edge";
2125- let packageManager = "apk update && apk add bash git curl sudo";
2125+ let packageManager = "apk update && \\\n apk add bash git curl sudo";
21262126 let shell = "/bin/ash";
21272127 let portMapping = "8080:8080";
21282128 let volumeMapping = "~/qbt:/root";
@@ -2183,30 +2183,32 @@ ${envVarsFormatted}
21832183 const baseScriptCommand = isLegacyMode
21842184 ? "./qbt.bash all"
21852185 : "./qbt.bash bootstrap_deps all";
2186- const scriptCommand = dockerUser === "username" ? `sudo ${baseScriptCommand}` : baseScriptCommand;
2186+ const scriptCommand = dockerUser === "username"
2187+ ? `su - username -c "${baseScriptCommand}"`
2188+ : baseScriptCommand;
21872189
21882190 // Add user setup commands when using username
21892191 const userSetup = dockerUser === "username" ?
21902192 (baseImage.includes("alpine")) ?
2191- " && adduser -h /home/username -Ds /bin/bash -u 1000 username && echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username" :
2193+ " && \\\n adduser -h /home/username -Ds /bin/bash -u 1000 username && \\\n echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username" :
21922194 (baseImage.includes("ubuntu") && baseImage.includes("noble")) ?
2193- " && usermod -md /home/username -l username ubuntu && groupmod -n username ubuntu && echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username && chmod 0440 /etc/sudoers.d/username" :
2195+ " && \\\n usermod -md /home/username -l username ubuntu && \\\n groupmod -n username ubuntu && \\\n echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username && \\\n chmod 0440 /etc/sudoers.d/username" :
21942196 (baseImage.includes("ubuntu") || baseImage.includes("debian")) ?
2195- " && if grep -q VERSION_CODENAME=noble /etc/os-release 2>/dev/null; then usermod -md /home/username -l username ubuntu && groupmod -n username ubuntu; else useradd -ms /bin/bash -u 1000 username; fi && echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username && chmod 0440 /etc/sudoers.d/username" :
2196- " && useradd -ms /bin/bash -u 1000 username && echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username"
2197+ " && \\\n if grep -q VERSION_CODENAME=noble /etc/os-release 2>/dev/null; then \\\n usermod -md /home/username -l username ubuntu && \\\n groupmod -n username ubuntu; \\\n else \\\n useradd -ms /bin/bash -u 1000 username; \\\n fi && \\\n echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username && \\\n chmod 0440 /etc/sudoers.d/username" :
2198+ " && \\\n useradd -ms /bin/bash -u 1000 username && \\\n echo \"username ALL=(ALL) NOPASSWD: ALL\" > /etc/sudoers.d/username"
21972199 : "";
21982200
21992201 // Package manager commands - run as root initially, no sudo needed
22002202 if (dockerUser === "username") {
22012203 if (baseImage.includes("ubuntu") || baseImage.includes("debian")) {
2202- packageManager = `LANG="C.UTF-8" \\
2203- \tLANGUAGE ="C.UTF-8" \\
2204- \tLC_ALL ="C.UTF-8" \\
2205- \tDEBIAN_FRONTEND =noninteractive \\
2206- \tapt -get update && \\
2207- \tapt -get install -y git curl sudo`;
2204+ packageManager = `LANG="C.UTF-8" \\\\
2205+ LANGUAGE ="C.UTF-8" \\ \\
2206+ LC_ALL ="C.UTF-8" \\ \\
2207+ DEBIAN_FRONTEND =noninteractive \\ \\
2208+ apt -get update && \\ \\
2209+ apt -get install -y git curl sudo`;
22082210 } else {
2209- packageManager = "apk update && apk add bash git curl sudo";
2211+ packageManager = "apk update && \\\n apk add bash git curl sudo";
22102212 }
22112213 }
22122214
@@ -2263,7 +2265,7 @@ ${envVarsFormatted}
22632265
22642266 const envVars: string[] = [];
22652267 let baseImage = "alpine:edge";
2266- let packageManager = "apk update && apk add bash git curl sudo";
2268+ let packageManager = "apk update && \\\n apk add bash git curl sudo";
22672269 let exposedPort = "8080";
22682270 let dockerUser = "root";
22692271
@@ -2277,9 +2279,9 @@ ${envVarsFormatted}
22772279 baseImage = currentValue || defaultValue || "";
22782280 // Set appropriate package manager based on distro
22792281 if (baseImage.includes("ubuntu") || baseImage.includes("debian")) {
2280- packageManager = "apt-get update && apt-get install -y git curl sudo";
2282+ packageManager = "apt-get update && \\\n apt-get install -y git curl sudo";
22812283 } else {
2282- packageManager = "apk update && apk add bash git curl sudo";
2284+ packageManager = "apk update && \\\n apk add bash git curl sudo";
22832285 }
22842286 return; // Don't include this in env vars
22852287 }
0 commit comments