feat(build): aggiunge infrastruttura Docker per build Linux riproducibile
- contrib/linux: Dockerfile (node:20-bookworm-slim) e build.sh con mount CA certs - package.json: target linux (AppImage/deb), files whitelist, electron in devDependencies - main.js: icona finestra impostata esplicitamente per Linux - build/.gitkeep: cartella build tracciata per icon.ico e icon.png
This commit is contained in:
12
contrib/linux/Dockerfile
Normal file
12
contrib/linux/Dockerfile
Normal file
@@ -0,0 +1,12 @@
|
||||
FROM node:20-bookworm-slim
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
libudev-dev \
|
||||
libusb-1.0-0-dev \
|
||||
fuse \
|
||||
rpm \
|
||||
dpkg-dev \
|
||||
python3 \
|
||||
make \
|
||||
g++ \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
WORKDIR /project
|
||||
25
contrib/linux/build.sh
Executable file
25
contrib/linux/build.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
IMAGE_NAME="cadroute-builder-linux"
|
||||
|
||||
echo "[cadroute] Building Docker image..."
|
||||
docker build -t "$IMAGE_NAME" "$SCRIPT_DIR"
|
||||
|
||||
echo "[cadroute] Running Linux build..."
|
||||
docker run --rm \
|
||||
--device /dev/fuse \
|
||||
--cap-add SYS_ADMIN \
|
||||
-v "$PROJECT_ROOT":/project \
|
||||
-w /project \
|
||||
-v cadroute-electron-cache:/root/.cache/electron \
|
||||
-v cadroute-electronbuilder-cache:/root/.cache/electron-builder \
|
||||
-v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro \
|
||||
-e SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt \
|
||||
-e NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-certificates.crt \
|
||||
"$IMAGE_NAME" \
|
||||
bash -c "npm ci && npm run build -- --linux --x64"
|
||||
|
||||
echo "[cadroute] Artefatti in: $PROJECT_ROOT/dist"
|
||||
Reference in New Issue
Block a user