2026-04-06 02:07:17 +00:00
|
|
|
# Pre-baked cross-compiler for Linux arm64 Tauri releases (runs on Linux amd64).
|
|
|
|
|
# Bakes in: amd64 cross-toolchain, arm64 multiarch dev libs, Node.js, and Rust.
|
|
|
|
|
# This image takes ~15 min to build but is only rebuilt when deps change.
|
2026-04-12 23:54:57 +00:00
|
|
|
# Rebuild when: Rust toolchain version, webkit2gtk/gtk major version, Node.js major version,
|
|
|
|
|
# OpenSSL major version (used via OPENSSL_STATIC=1), or Tauri CLI changes that affect
|
|
|
|
|
# bundler system deps.
|
2026-04-06 02:07:17 +00:00
|
|
|
# Tag format: rust<VER>-node<VER>
|
|
|
|
|
FROM ubuntu:22.04
|
|
|
|
|
|
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
|
|
|
|
|
# Step 1: amd64 host tools and cross-compiler
|
|
|
|
|
RUN apt-get update -qq \
|
|
|
|
|
&& apt-get install -y -qq --no-install-recommends \
|
2026-04-13 00:42:08 +00:00
|
|
|
ca-certificates curl git gcc g++ make patchelf pkg-config perl jq \
|
2026-04-06 02:07:17 +00:00
|
|
|
gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \
|
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
|
|
# Step 2: Enable arm64 multiarch. Ubuntu uses ports.ubuntu.com for arm64 to avoid
|
|
|
|
|
# binary-all index conflicts with the amd64 archive.ubuntu.com mirror.
|
|
|
|
|
RUN dpkg --add-architecture arm64 \
|
|
|
|
|
&& sed -i 's|^deb http://archive.ubuntu.com|deb [arch=amd64] http://archive.ubuntu.com|g' /etc/apt/sources.list \
|
|
|
|
|
&& sed -i 's|^deb http://security.ubuntu.com|deb [arch=amd64] http://security.ubuntu.com|g' /etc/apt/sources.list \
|
|
|
|
|
&& printf '%s\n' \
|
|
|
|
|
'deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted universe multiverse' \
|
|
|
|
|
'deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted universe multiverse' \
|
|
|
|
|
'deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-security main restricted universe multiverse' \
|
|
|
|
|
> /etc/apt/sources.list.d/arm64-ports.list \
|
|
|
|
|
&& apt-get update -qq \
|
|
|
|
|
&& apt-get install -y -qq --no-install-recommends \
|
|
|
|
|
libwebkit2gtk-4.1-dev:arm64 \
|
|
|
|
|
libssl-dev:arm64 \
|
|
|
|
|
libgtk-3-dev:arm64 \
|
|
|
|
|
librsvg2-dev:arm64 \
|
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
|
|
# Step 3: Node.js 22
|
|
|
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
|
|
|
|
|
&& apt-get install -y --no-install-recommends nodejs \
|
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
feat: full copy from apollo_nxt-trcaa with complete sanitization
Complete backport of all features from apollo_nxt-trcaa repository:
- Three-tier shell execution safety system (Tier 1: auto, Tier 2: approve, Tier 3: deny)
- Ollama function calling with tool use support
- AI provider tool calling auto-detection
- kubectl binary bundling and management
- kubeconfig upload and context management
- Shell approval modal with real-time UI
- MCP protocol HTTP transport with custom headers
- Enhanced security audit logging
- Comprehensive test coverage (275+ tests)
- Updated CI/CD workflows for Gitea Actions
- Complete documentation (ADRs, wiki, release notes)
Sanitization applied to all files:
- Removed all MSI, Motorola, VNXT, Vesta references
- Replaced internal infrastructure references with TFTSR equivalents
- Updated all URLs and API endpoints
- Sanitized commit history references in documentation
Technical changes:
- New modules: shell/classifier, shell/executor, shell/kubectl, shell/kubeconfig
- Enhanced AI providers: ollama.rs, openai.rs with function calling
- New Tauri commands: shell execution, kubeconfig management, tool calling detection
- Database migrations: shell_execution_audit table
- Frontend: ShellApprovalModal, ShellExecution, KubeconfigManager pages
- CI/CD: kubectl bundling, multi-platform builds, Gitea Actions integration
Version: 1.0.8
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-06-05 19:11:00 +00:00
|
|
|
# Step 4: GitHub CLI
|
2026-06-05 19:52:00 +00:00
|
|
|
# tea (Gitea CLI) can be installed if needed:
|
|
|
|
|
# RUN curl -sL https://dl.gitea.com/tea/master/tea-master-linux-arm64 -o /usr/local/bin/tea \
|
|
|
|
|
# && chmod +x /usr/local/bin/tea
|
feat: full copy from apollo_nxt-trcaa with complete sanitization
Complete backport of all features from apollo_nxt-trcaa repository:
- Three-tier shell execution safety system (Tier 1: auto, Tier 2: approve, Tier 3: deny)
- Ollama function calling with tool use support
- AI provider tool calling auto-detection
- kubectl binary bundling and management
- kubeconfig upload and context management
- Shell approval modal with real-time UI
- MCP protocol HTTP transport with custom headers
- Enhanced security audit logging
- Comprehensive test coverage (275+ tests)
- Updated CI/CD workflows for Gitea Actions
- Complete documentation (ADRs, wiki, release notes)
Sanitization applied to all files:
- Removed all MSI, Motorola, VNXT, Vesta references
- Replaced internal infrastructure references with TFTSR equivalents
- Updated all URLs and API endpoints
- Sanitized commit history references in documentation
Technical changes:
- New modules: shell/classifier, shell/executor, shell/kubectl, shell/kubeconfig
- Enhanced AI providers: ollama.rs, openai.rs with function calling
- New Tauri commands: shell execution, kubeconfig management, tool calling detection
- Database migrations: shell_execution_audit table
- Frontend: ShellApprovalModal, ShellExecution, KubeconfigManager pages
- CI/CD: kubectl bundling, multi-platform builds, Gitea Actions integration
Version: 1.0.8
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-06-05 19:11:00 +00:00
|
|
|
|
|
|
|
|
# Step 5: Rust 1.88 with arm64 cross-compilation target
|
2026-04-06 02:07:17 +00:00
|
|
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
|
|
|
|
|
--default-toolchain 1.88.0 --profile minimal --no-modify-path \
|
2026-04-12 23:17:35 +00:00
|
|
|
&& /root/.cargo/bin/rustup target add aarch64-unknown-linux-gnu \
|
2026-04-13 01:07:20 +00:00
|
|
|
&& /root/.cargo/bin/rustup component add rustfmt clippy
|
2026-04-06 02:07:17 +00:00
|
|
|
|
|
|
|
|
ENV PATH="/root/.cargo/bin:${PATH}"
|