51 lines
1.4 KiB
Docker
51 lines
1.4 KiB
Docker
# Multi-stage build container for Tauri Desktop Client
|
|
# Supports: linux, windows (cross-compile)
|
|
|
|
FROM rust:1.94-bookworm AS builder
|
|
|
|
# Install system dependencies for Tauri
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
libwebkit2gtk-4.1-dev \
|
|
libgtk-3-dev \
|
|
libayatana-appindicator3-dev \
|
|
librsvg2-dev \
|
|
libcairo2-dev \
|
|
libgdk-pixbuf-2.0-dev \
|
|
libsoup-3.0-dev \
|
|
libjavascriptcoregtk-4.1-dev \
|
|
pkg-config \
|
|
curl \
|
|
wget \
|
|
file \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Node.js
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
|
|
&& apt-get install -y nodejs \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Windows cross-compile tools
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
gcc-mingw-w64-x86-64 \
|
|
nsis \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& rustup target add x86_64-pc-windows-gnu || true
|
|
|
|
WORKDIR /build
|
|
|
|
# Cache Rust dependencies
|
|
COPY src-tauri/Cargo.toml src-tauri/Cargo.lock* ./src-tauri/
|
|
COPY src-tauri/build.rs ./src-tauri/
|
|
RUN mkdir -p src-tauri/src && echo "pub fn run() {}" > src-tauri/src/lib.rs \
|
|
&& echo "fn main() { minicloud_sync_lib::run() }" > src-tauri/src/main.rs \
|
|
&& cd src-tauri && cargo fetch 2>/dev/null || true
|
|
|
|
# Copy full source
|
|
COPY . .
|
|
|
|
# Install npm dependencies
|
|
RUN npm ci
|
|
|
|
# Default: build for linux
|
|
CMD ["npm", "run", "tauri", "build"]
|