fix: support arm64 production bootstrap

This commit is contained in:
hectorzhao
2026-07-07 15:02:23 +08:00
parent 4c8f7dd73f
commit 9fee6fa81b
2 changed files with 17 additions and 5 deletions
+1 -1
View File
@@ -35,7 +35,7 @@ PROD_ADMIN_USERNAME=prod_admin
PROD_ADMIN_PASSWORD='change-me' PROD_ADMIN_PASSWORD='change-me'
``` ```
脚本会安装 Node.js、Go、PostgreSQL、Redis、MinIO、Nginx,创建 systemd 服务,执行 Prisma migrate,构建前端/API/Gateway,并创建平台管理员。 脚本会安装 Node.js、Go、PostgreSQL、Redis、MinIO、Nginx,创建 systemd 服务,执行 Prisma migrate,构建前端/API/Gateway,并创建平台管理员。Go 和 MinIO 下载会按服务器架构自动选择 `linux-amd64``linux-arm64`
## 后续发布 ## 后续发布
+16 -4
View File
@@ -60,19 +60,31 @@ install_packages() {
install_go() { install_go() {
local version="${GO_VERSION:-1.26.0}" local version="${GO_VERSION:-1.26.0}"
local arch
case "$(uname -m)" in
x86_64|amd64) arch="amd64" ;;
aarch64|arm64) arch="arm64" ;;
*) echo "Unsupported Go architecture: $(uname -m)" >&2; exit 1 ;;
esac
if command -v go >/dev/null 2>&1 && [[ "$(go version | awk '{print $3}' | sed 's/go//')" == "$version" ]]; then if command -v go >/dev/null 2>&1 && [[ "$(go version | awk '{print $3}' | sed 's/go//')" == "$version" ]]; then
return return
fi fi
log "Installing Go ${version}" log "Installing Go ${version} for linux-${arch}"
curl -fL "https://go.dev/dl/go${version}.linux-amd64.tar.gz" -o /tmp/go.tar.gz curl -fL "https://go.dev/dl/go${version}.linux-${arch}.tar.gz" -o /tmp/go.tar.gz
rm -rf /usr/local/go rm -rf /usr/local/go
tar -C /usr/local -xzf /tmp/go.tar.gz tar -C /usr/local -xzf /tmp/go.tar.gz
ln -sf /usr/local/go/bin/go /usr/local/bin/go ln -sf /usr/local/go/bin/go /usr/local/bin/go
} }
install_minio() { install_minio() {
log "Installing MinIO" local arch
curl -fL https://dl.min.io/server/minio/release/linux-amd64/minio -o /usr/local/bin/minio case "$(uname -m)" in
x86_64|amd64) arch="amd64" ;;
aarch64|arm64) arch="arm64" ;;
*) echo "Unsupported MinIO architecture: $(uname -m)" >&2; exit 1 ;;
esac
log "Installing MinIO for linux-${arch}"
curl -fL "https://dl.min.io/server/minio/release/linux-${arch}/minio" -o /usr/local/bin/minio
chmod +x /usr/local/bin/minio chmod +x /usr/local/bin/minio
useradd --system --home /var/lib/minio --shell /usr/sbin/nologin minio 2>/dev/null || true useradd --system --home /var/lib/minio --shell /usr/sbin/nologin minio 2>/dev/null || true
mkdir -p /var/lib/minio mkdir -p /var/lib/minio