Skip to content

fix(execd): Add fallback from bash to sh for Alpine-based images#407

Open
Jah-yee wants to merge 1 commit intoalibaba:mainfrom
Jah-yee:fix/shell-fallback
Open

fix(execd): Add fallback from bash to sh for Alpine-based images#407
Jah-yee wants to merge 1 commit intoalibaba:mainfrom
Jah-yee:fix/shell-fallback

Conversation

@Jah-yee
Copy link

@Jah-yee Jah-yee commented Mar 10, 2026

Summary

This PR addresses issue #405 by adding a fallback from bash to sh for Alpine-based Docker images.

Problem

In a lot of Docker images like Alpine-based images, they only contain sh. They do not contain bash by default, making it impossible to run any command using the execd.

Solution

Added a getShell() helper function that:

  1. First tries to find bash using exec.LookPath
  2. Falls back to sh if bash is not available

This change has been applied to both locations where shell commands are executed (lines ~96 and ~231).

Testing

The fix is backward compatible - on systems with bash (like Ubuntu, Debian), it will continue to use bash. On Alpine-based images, it will automatically fall back to sh.

This addresses issue alibaba#405 by adding a getShell() helper function
that first tries bash, then falls back to sh for Alpine-based
Docker images that don't have bash installed by default.
@chatgpt-codex-connector
Copy link

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.


SparkLabScout seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

@Pangjiping
Copy link
Collaborator

Thanks for fixes. Please sign CLA and I will review and merge those changes as soon as possible.

@Pangjiping Pangjiping self-assigned this Mar 10, 2026
@Pangjiping Pangjiping added bug Something isn't working component/execd labels Mar 10, 2026
@Pangjiping
Copy link
Collaborator

Perhaps the bootstrap.sh script also needs to be compatible with sh-only environments.

ref: https://github.com/alibaba/OpenSandbox/blob/main/components/execd/bootstrap.sh

set -x
if [ "$CMD" != "" ]; then
exec bash -c "$CMD"
fi

if [ $# -eq 0 ]; then
exec bash
fi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working component/execd

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants