#!/bin/bash IMAGE_NAME="ubuntu:22.04" HOST_PROJECT_DIR="$PWD" CONTAINER_PROJECT_DIR="/app" HOST_OUTPUT_DIR="$PWD/src-tauri/target/release/bundle/appimage" CONTAINER_OUTPUT_DIR="$CONTAINER_PROJECT_DIR/src-tauri/target/release/bundle/appimage" USER_ID=$(id -u) GROUP_ID=$(id -g) docker pull $IMAGE_NAME # run the docker image and remove on completion docker run --rm -it \ -v "$HOST_PROJECT_DIR":$CONTAINER_PROJECT_DIR \ $IMAGE_NAME \ /bin/bash -c " # update packages apt update && apt upgrade -y && \ # install tauri dependencies apt install -y libwebkit2gtk-4.0-dev build-essential curl wget file libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev && \ # install rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \ . /root/.cargo/env && \ # install mise install -dm 755 /etc/apt/keyrings && \ wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | tee /etc/apt/keyrings/mise-archive-keyring.gpg 1> /dev/null && \ echo 'deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main' | tee /etc/apt/sources.list.d/mise.list && \ apt update && \ # install mise tools apt install -y mise && \ # build cd $CONTAINER_PROJECT_DIR && \ mise install && \ mise settings set experimental true && \ mise exec bun --command \"bun run tauri build\" chown -R $USER_ID:$GROUP_ID $CONTAINER_PROJECT_DIR && \ echo "Build complete. Output available in $HOST_OUTPUT_DIR" "