FROM ubuntu WORKDIR /app COPY . . RUN apt-get update && apt-get install -y \ build-essential \ git \ curl \ libwebkit2gtk-4.1-dev \ wget \ file \ libxdo-dev \ libssl-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ python3 # nvm env vars RUN mkdir -p /usr/local/nvm ENV NVM_DIR /usr/local/nvm # IMPORTANT: set the exact version ENV NODE_VERSION v22.9.0 RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash RUN /bin/bash -c "source $NVM_DIR/nvm.sh && nvm install $NODE_VERSION && nvm use --delete-prefix $NODE_VERSION" # add node and npm to the PATH ENV NODE_PATH $NVM_DIR/versions/node/$NODE_VERSION/bin ENV PATH $NODE_PATH:$PATH RUN npm -v RUN node -v # Get Rust RUN curl https://sh.rustup.rs -sSf | bash -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" # Get tauri RUN cargo install tauri-cli # Get trunk RUN cargo install trunk # Build app WORKDIR /app/client ENTRYPOINT ["cargo", "tauri", "build"]