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

  • friend_of_satan@lemmy.world
    link
    fedilink
    English
    arrow-up
    14
    ·
    edit-2
    7 months ago

    Python is not found, so $ARCH gets assigned to "", and you didn’t double quote your variables in the comparison, so the code parses as [ == "aarch64" which is a syntax error.

    Also, maybe uname -m could work instead of that Python script.