42 lines
1.0 KiB
Docker
42 lines
1.0 KiB
Docker
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
|