Files
ModelRouter/cmd/gui/scripts/win-core-docker.sh

39 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Build embedded Windows core inside the self-sufficient builder image.
# - image has LuaJIT pre-built: /opt/luajit2/src/{lua51.dll, libluajit-5.1.dll.a}
# - import lib already installed at image build (libluajit-5.1.a, mingw lib dir)
# Outputs: cmd/gui/bin/{llmsproxy.exe, lua51.dll}
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
BIN_DIR="$ROOT/cmd/gui/bin"
IMAGE="${WIN_BUILDER_IMAGE:-modelrouter/win-builder}"
PROXY="${GOPROXY:-https://goproxy.cn,direct}"
command -v docker >/dev/null || {
echo "docker required"
exit 1
}
if ! docker image inspect "$IMAGE" >/dev/null 2>&1; then
echo "[win-core] building image $IMAGE ..."
docker build -t "$IMAGE" "$ROOT/cmd/gui/docker/win-builder"
fi
mkdir -p "$BIN_DIR"
echo "[win-core] cross-building llmsproxy.exe (windows/amd64, luajit) + lua51.dll ..."
docker run --rm \
-v "$ROOT":/workspace \
-e GOPROXY="$PROXY" \
-w /workspace \
"$IMAGE" bash -c '
set -euo pipefail
cp /opt/luajit2/src/lua51.dll /workspace/cmd/gui/bin/lua51.dll
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc \
go build -buildvcs=false -tags luajit -trimpath \
-o /workspace/cmd/gui/bin/llmsproxy.exe ./cmd/llmsproxy
echo " -> core built"
'
echo "[win-core] done: $BIN_DIR/llmsproxy.exe"