The opencode installer script requires $SHELL to be set, which Alpine's sh in Docker doesn't provide. This caused the install to download the binary but fail before placing it, silently swallowed by the || fallback. Also hardcode the known install path and fail the build if it's missing.