| # debian.sh --arch 'amd64' out/ 'trixie' '@1773619200' |
| LABEL maintainer=Ibrahim Najjar <https://github.com/abjrcode/> |
| LABEL org.opencontainers.image.source=https://github.com/abjrcode/cross-wails |
| ENV DEBIAN_FRONTEND=noninteractive |
| ARG DPKG_ARCH=amd64 arm64 |
| ARG CROSSBUILD_ARCH=amd64 arm64 |
| ARG MINGW_VERSION=20260324 |
| ARG MINGW_HOST=ubuntu-24.04 |
| SHELL [/bin/bash -c] |
| RUN |4 DPKG_ARCH=amd64 arm64 CROSSBUILD_ARCH=amd64 arm64 MINGW_VERSION=20260324 MINGW_HOST=ubuntu-24.04 /bin/bash -c set -x; apt-get -qq update && apt-get install --no-install-recommends -y -qq curl wget ca-certificates gnupg nsis && while read arch; do dpkg --add-architecture $arch; done < <(echo "${DPKG_ARCH}" | tr ' ' '\n') && apt-get clean && apt-get -qq update # buildkit |
| RUN |4 DPKG_ARCH=amd64 arm64 CROSSBUILD_ARCH=amd64 arm64 MINGW_VERSION=20260324 MINGW_HOST=ubuntu-24.04 /bin/bash -c crossbuild_pkgs=$(while read arch; do echo -n "crossbuild-essential-$arch "; done < <(echo "${CROSSBUILD_ARCH}" | tr ' ' '\n')) && apt-get install --no-install-recommends -y -qq gcc libarchive-tools mingw-w64 ${crossbuild_pkgs} && MINGW_ARCH=$(echo -n $TARGETARCH | sed -e 's/arm64/aarch64/g') && wget -qO - "https://github.com/mstorsjo/llvm-mingw/releases/download/${MINGW_VERSION}/llvm-mingw-${MINGW_VERSION}-ucrt-${MINGW_HOST}-${MINGW_ARCH}.tar.xz" | bsdtar -xf - && ln -snf $(pwd)/llvm-mingw-${MINGW_VERSION}-ucrt-${MINGW_HOST}-${MINGW_ARCH} /llvm-mingw # buildkit |
| RUN |4 DPKG_ARCH=amd64 arm64 CROSSBUILD_ARCH=amd64 arm64 MINGW_VERSION=20260324 MINGW_HOST=ubuntu-24.04 /bin/bash -c apt-get -qq update && apt-get -qq install -y libgtk-3-dev:arm64 libwebkit2gtk-4.1-dev:arm64 && apt download libwebkit2gtk-4.1-dev:arm64 libsoup-3.0-dev:arm64 libjavascriptcoregtk-4.1-dev:arm64 libsysprof-capture-4-dev:arm64 libnghttp2-dev:arm64 && dpkg --force-depends -i *.deb && rm -f *.deb # buildkit |
| ARG NODE_MAJOR_VERSION=24 |
| RUN |5 DPKG_ARCH=amd64 arm64 CROSSBUILD_ARCH=amd64 arm64 MINGW_VERSION=20260324 MINGW_HOST=ubuntu-24.04 NODE_MAJOR_VERSION=24 /bin/bash -c curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR_VERSION}.x -o nodesource_setup.sh && chmod +x nodesource_setup.sh && bash nodesource_setup.sh && apt-get install -y nodejs # buildkit |
| ARG TARGETARCH=amd64 |
| ARG GO_VERSION=1.24.0 |
| RUN |7 DPKG_ARCH=amd64 arm64 CROSSBUILD_ARCH=amd64 arm64 MINGW_VERSION=20260324 MINGW_HOST=ubuntu-24.04 NODE_MAJOR_VERSION=24 TARGETARCH=amd64 GO_VERSION=1.24.0 /bin/bash -c wget https://go.dev/dl/go${GO_VERSION}.linux-${TARGETARCH}.tar.gz && rm -rf /usr/local/go && tar -C /usr/local -xzf go${GO_VERSION}.linux-${TARGETARCH}.tar.gz && rm go${GO_VERSION}.linux-${TARGETARCH}.tar.gz # buildkit |
| ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/go/bin:/usr/local/go/bin |
| RUN |7 DPKG_ARCH=amd64 arm64 CROSSBUILD_ARCH=amd64 arm64 MINGW_VERSION=20260324 MINGW_HOST=ubuntu-24.04 NODE_MAJOR_VERSION=24 TARGETARCH=amd64 GO_VERSION=1.24.0 /bin/bash -c apt -y autoremove && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && rm -rf /usr/share/man/* /usr/share/doc # buildkit |
| ENV CGO_ENABLED=1 |
| ARG WAILS_VERSION=v2.11.0 |
| RUN |8 DPKG_ARCH=amd64 arm64 CROSSBUILD_ARCH=amd64 arm64 MINGW_VERSION=20260324 MINGW_HOST=ubuntu-24.04 NODE_MAJOR_VERSION=24 TARGETARCH=amd64 GO_VERSION=1.24.0 WAILS_VERSION=v2.11.0 /bin/bash -c go install github.com/wailsapp/wails/v2/cmd/wails@${WAILS_VERSION} && go clean -cache && rm -rf /root/go/pkg # buildkit |
| ENTRYPOINT ["/bin/bash"] |
| WORKDIR /usr/src/app |
| ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig |
| ENV PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig |
| ARG BUILD_DATE=dev-0000000000 |
| ARG BUILD_VERSION=0.0.0-dev |
| ENV BUILD_DATE=dev-0000000000 |
| ENV BUILD_VERSION=0.0.0-dev |
| ARG UID=1000 |
| ARG GID=1000 |
| RUN |4 BUILD_DATE=dev-0000000000 BUILD_VERSION=0.0.0-dev UID=1000 GID=1000 /bin/bash -c groupadd --force -g $GID builder # buildkit |
| RUN |4 BUILD_DATE=dev-0000000000 BUILD_VERSION=0.0.0-dev UID=1000 GID=1000 /bin/bash -c useradd -l -u $UID -g builder builder # buildkit |
| RUN |4 BUILD_DATE=dev-0000000000 BUILD_VERSION=0.0.0-dev UID=1000 GID=1000 /bin/bash -c install -d -m 0755 -o builder -gbuilder /home/builder # buildkit |
| RUN |4 BUILD_DATE=dev-0000000000 BUILD_VERSION=0.0.0-dev UID=1000 GID=1000 /bin/bash -c chown --changes --silent --no-dereference --recursive ${UID}:${GID} /home/builder # buildkit |
| USER builder |
| ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/go/bin:/usr/local/go/bin:/home/builder/go/bin:/usr/local/go/bin |
| ARG WAILS_VERSION=v2.11.0 |
| RUN |5 BUILD_DATE=dev-0000000000 BUILD_VERSION=0.0.0-dev UID=1000 GID=1000 WAILS_VERSION=v2.11.0 /bin/bash -c go install github.com/wailsapp/wails/v2/cmd/wails@${WAILS_VERSION} && go clean -cache # buildkit |
| ENTRYPOINT [] |
| CMD ["/bin/bash" "-c" "export LD_FLAGS=\"-X 'git.codebomb.org/safety-screen/dash-launcher/sys.Build=${BUILD_DATE}' -X 'git.codebomb.org/safety-screen/dash-launcher/sys.Version=${BUILD_VERSION}'\" && cd /usr/src/app && go mod download && GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc wails build -tags webkit2_41 -platform linux/arm64 -ldflags \"${LD_FLAGS}\" -o dash-launcher-arm64"] |