diff --git a/Dockerfile b/Dockerfile index 8c010ba..455bea1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,9 +26,6 @@ RUN apt-get update && apt-get install -y \ curl \ python3 \ python3-pip \ - gcc \ - g++ \ - make \ && rm -rf /var/lib/apt/lists/* COPY --from=backend /app/src-tauri/target/release/codeg-server /usr/local/bin/codeg-server @@ -38,6 +35,7 @@ ENV CODEG_STATIC_DIR=/app/web ENV CODEG_DATA_DIR=/data ENV CODEG_PORT=3080 ENV CODEG_HOST=0.0.0.0 +ENV SHELL=/bin/bash EXPOSE 3080 VOLUME /data diff --git a/Dockerfile.ci b/Dockerfile.ci index 9ab6364..4391e66 100644 --- a/Dockerfile.ci +++ b/Dockerfile.ci @@ -12,9 +12,6 @@ RUN apt-get update && apt-get install -y \ curl \ python3 \ python3-pip \ - gcc \ - g++ \ - make \ && rm -rf /var/lib/apt/lists/* COPY dist/${TARGETARCH}/codeg-server /usr/local/bin/codeg-server @@ -24,6 +21,7 @@ ENV CODEG_STATIC_DIR=/app/web ENV CODEG_DATA_DIR=/data ENV CODEG_PORT=3080 ENV CODEG_HOST=0.0.0.0 +ENV SHELL=/bin/bash EXPOSE 3080 VOLUME /data diff --git a/src-tauri/src/terminal/manager.rs b/src-tauri/src/terminal/manager.rs index a524332..7c875be 100644 --- a/src-tauri/src/terminal/manager.rs +++ b/src-tauri/src/terminal/manager.rs @@ -44,7 +44,19 @@ fn resolve_shell() -> String { } #[cfg(not(target_os = "windows"))] { - std::env::var("SHELL").unwrap_or_else(|_| "/bin/zsh".to_string()) + if let Ok(shell) = std::env::var("SHELL") { + let trimmed = shell.trim(); + if !trimmed.is_empty() { + return trimmed.to_string(); + } + } + // Try common shells in order of preference + for candidate in ["/bin/zsh", "/bin/bash", "/bin/sh"] { + if std::path::Path::new(candidate).exists() { + return candidate.to_string(); + } + } + "/bin/sh".to_string() } }