Files
minmal-file-cloud-email-pim…/clients/desktop/Dockerfile.build
T
Stefan Hacker 48a46cbc79 feat: Build-Script + Docker-Build fuer alle Plattformen
build.sh - baut Clients via Docker (kein lokales Setup noetig):
  ./build.sh linux        # Linux Desktop (.deb + .AppImage)
  ./build.sh windows      # Windows Desktop (.msi + .exe) Cross-Compile
  ./build.sh mac          # macOS Desktop (.dmg) - nur auf macOS
  ./build.sh android      # Android App (.apk) via Docker
  ./build.sh ios          # iOS App (.ipa) - nur auf macOS
  ./build.sh all-desktop  # Linux + Windows zusammen
  ./build.sh clean        # Build-Cache loeschen

Dockerfile.build: Multi-stage Container mit Rust, Node.js, Tauri-Deps,
  Windows Cross-Compile Tools (mingw-w64)

Output landet in build-output/ (gitignored)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 23:29:58 +02:00

51 lines
1.4 KiB
INI

# 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"]