If I run this

#!/bin/bash

ARCH=$(python fetch_architecture.py)
if [ $ARCH == "aarch64" -o $ARCH == "armv71" ] ; then
    export PATH=/opt/local/llvm/bin:${PATH}
    cd /app
    RUSTFLAGS="-C linker=lld" wasm-pack build --target web --release plume-front
else
    wasm-pack build --target web --release plume-front
fi

via the terminal, it works just fine. But when I run it via the Dockerfile,

COPY . . 
RUN cargo install wasm-pack 
RUN chmod a+x ./script/plume-front.sh 
RUN sleep 1 
RUN ./script/plume-front.sh

It says python: command not found and then [: too many arguments

  • 𝕨𝕒𝕤𝕒𝕓𝕚
    link
    fedilink
    14 months ago

    Thanks. Bash should just be avoided except trivial uses. It has an impressive collection of footguns. I’ve written a lot of bash, even used it for CGI scripts to create web tools, but honestly it is time to move on. Ansible and Python cover most of the bash use cases.

    • @onlinepersona
      link
      14 months ago

      I fully agree with you. Hopefully newer shells will be used for distros (nushell, xonsh, osh, …). Backwards compatibility with bash is a huge pitfall that should be a disqualification criterion.

      Anti Commercial-AI license