96 lines
1.9 KiB
Bash
96 lines
1.9 KiB
Bash
#!/bin/bash
|
||
|
||
# Nomad ARMv7 自动编译脚本
|
||
# 适用于 onecloud1 节点
|
||
|
||
set -e
|
||
|
||
echo "🚀 开始编译 Nomad ARMv7 版本..."
|
||
|
||
# 检查系统架构
|
||
ARCH=$(uname -m)
|
||
echo "📋 当前系统架构: $ARCH"
|
||
|
||
# 设置Go环境变量
|
||
export GOOS=linux
|
||
export GOARCH=arm
|
||
export GOARM=7
|
||
export CGO_ENABLED=0
|
||
|
||
echo "🔧 设置编译环境:"
|
||
echo " GOOS=$GOOS"
|
||
echo " GOARCH=$GOARCH"
|
||
echo " GOARM=$GOARM"
|
||
echo " CGO_ENABLED=$CGO_ENABLED"
|
||
|
||
# 检查Go版本
|
||
if ! command -v go &> /dev/null; then
|
||
echo "❌ Go未安装,正在安装..."
|
||
# 安装Go (假设是Ubuntu/Debian系统)
|
||
sudo apt update
|
||
sudo apt install -y golang-go
|
||
fi
|
||
|
||
GO_VERSION=$(go version)
|
||
echo "✅ Go版本: $GO_VERSION"
|
||
|
||
# 创建编译目录
|
||
BUILD_DIR="/tmp/nomad-build"
|
||
mkdir -p $BUILD_DIR
|
||
cd $BUILD_DIR
|
||
|
||
echo "📥 克隆 Nomad 源码..."
|
||
if [ -d "nomad" ]; then
|
||
echo "🔄 更新现有仓库..."
|
||
cd nomad
|
||
git pull
|
||
else
|
||
git clone https://github.com/hashicorp/nomad.git
|
||
cd nomad
|
||
fi
|
||
|
||
# 切换到最新稳定版本
|
||
echo "🏷️ 切换到最新稳定版本..."
|
||
git checkout $(git describe --tags --abbrev=0)
|
||
|
||
# 编译
|
||
echo "🔨 开始编译..."
|
||
make dev
|
||
|
||
# 检查编译结果
|
||
if [ -f "bin/nomad" ]; then
|
||
echo "✅ 编译成功!"
|
||
|
||
# 显示文件信息
|
||
file bin/nomad
|
||
ls -lh bin/nomad
|
||
|
||
# 备份现有Nomad
|
||
if [ -f "/usr/bin/nomad" ]; then
|
||
echo "💾 备份现有Nomad..."
|
||
sudo cp /usr/bin/nomad /usr/bin/nomad.backup.$(date +%Y%m%d-%H%M%S)
|
||
fi
|
||
|
||
# 安装新版本
|
||
echo "📦 安装新版本..."
|
||
sudo cp bin/nomad /usr/bin/nomad
|
||
sudo chmod +x /usr/bin/nomad
|
||
|
||
# 验证安装
|
||
echo "🔍 验证安装..."
|
||
/usr/bin/nomad version
|
||
|
||
echo "🎉 Nomad ARMv7 版本安装完成!"
|
||
|
||
else
|
||
echo "❌ 编译失败!"
|
||
exit 1
|
||
fi
|
||
|
||
# 清理
|
||
echo "🧹 清理编译文件..."
|
||
cd /
|
||
rm -rf $BUILD_DIR
|
||
|
||
echo "✨ 完成!"
|