chore: add print dev deploy script

This commit is contained in:
tsiji 2026-05-22 17:23:35 +08:00
parent 2c1c61097a
commit c0813df7a8

56
deploy/deploy-dev.sh Executable file
View File

@ -0,0 +1,56 @@
#!/bin/bash
set -e
HARBOR="10.10.11.40:5000"
HARBOR_USER="admin"
HARBOR_PASS="Harbor@2026"
SERVICE="imes-custom-nalinv-print"
IMAGE_REPO="${HARBOR}/dev/${SERVICE}"
GITEA_REPO="http://chengzhaofeng:Init1234@10.10.11.66:3000/chengzhaofeng/k8s-manifests.git"
MANIFEST="dev/${SERVICE}.yaml"
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
# 1. 构建 JAR
echo "==> [1/4] 构建 JAR..."
mvn clean package -DskipTests -pl print-app -am -q
echo " 完成: print-app/target/nlv-print.jar ($(du -sh print-app/target/nlv-print.jar | cut -f1))"
# 2. 构建 Docker 镜像
TAG=$(date +%Y%m%d%H%M%S)
IMAGE="${IMAGE_REPO}:${TAG}"
echo "==> [2/4] 构建镜像 $IMAGE ..."
if docker buildx version >/dev/null 2>&1; then
docker buildx build --platform linux/amd64 -t "$IMAGE" -f print-app/Dockerfile --load .
else
docker build -t "$IMAGE" -f print-app/Dockerfile .
fi
echo " 镜像构建完成"
# 3. 推送到 Harbor
echo "==> [3/4] 推送到 Harbor..."
echo "$HARBOR_PASS" | docker login "$HARBOR" -u "$HARBOR_USER" --password-stdin
docker push "$IMAGE"
echo " 推送完成"
# 4. 更新 k8s-manifests 触发 ArgoCD
echo "==> [4/4] 更新 k8s-manifests..."
TMPDIR=$(mktemp -d)
git clone "$GITEA_REPO" "$TMPDIR" -q
cd "$TMPDIR"
git config user.email "deploy@mes.local"
git config user.name "deploy-local"
sed -i '' "s|${IMAGE_REPO}:[^ ]*|${IMAGE}|" "$MANIFEST" 2>/dev/null || \
sed -i "s|${IMAGE_REPO}:[^ ]*|${IMAGE}|" "$MANIFEST"
git add "$MANIFEST"
git commit -m "deploy: ${SERVICE} -> ${TAG}"
git push -q
cd "$ROOT"
rm -rf "$TMPDIR"
echo " 已提交,ArgoCD 将在数秒内同步"
echo ""
echo "✅ 部署完成: $IMAGE"
echo " ArgoCD: http://10.10.11.40 (dev-services)"
echo " Gitea: http://10.10.11.66:3000/chengzhaofeng/k8s-manifests"