FROM cgr.dev/chainguard/node:latest-dev AS node-builder WORKDIR /app COPY --chown=node:node package.json package-lock.json ./ RUN npm ci COPY --chown=node:node . . RUN npm run build FROM golang:alpine AS builder # Install dependencies for Wails on Alpine # Added webkit2gtk-4.1-dev which is the modern package name in Alpine RUN apk add --no-cache \ git \ make \ gcc \ musl-dev \ pkgconfig \ gtk+3.0-dev \ webkit2gtk-4.1-dev \ curl # Install Wails RUN go install github.com/wailsapp/wails/v2/cmd/wails@latest ENV PATH=$PATH:/root/go/bin WORKDIR /app COPY . . COPY --from=node-builder /app/build ./build # Build the Go server RUN mkdir -p bin && \ CGO_ENABLED=0 go build -ldflags="-s -w" -o bin/linking-tool main.go # Build desktop apps RUN mkdir -p desktop/frontend_dist && \ cp -r build/* desktop/frontend_dist/ && \ cd desktop && wails build -s -platform linux/amd64 -o linking-tool-linux FROM scratch COPY --from=builder /app/bin /bin COPY --from=builder /app/desktop/build/bin /desktop-bin