Archived
forked from admin/userbase
init: userbase front/service/deploy source (CI builds front via Gitea Actions)
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
# 本地构建 UserBase 前后端镜像并推送到阿里云 ACR
|
||||
# 用法: ./build-push.sh [app_tag] [front_tag]
|
||||
# 前置环境变量: ACR_NAMESPACE, ACR_USERNAME, ACR_PASSWORD
|
||||
# 前置产物: service/target/userbase.jar、front/dist/prod/
|
||||
set -euo pipefail
|
||||
|
||||
APP_VERSION="${1:-${APP_VERSION:-userbase-v1.0}}"
|
||||
FRONT_VERSION="${2:-${FRONT_VERSION:-userbase-front-v1.0}}"
|
||||
REGISTRY="${ACR_REGISTRY:-registry.cn-hangzhou.aliyuncs.com}"
|
||||
NAMESPACE="${ACR_NAMESPACE:?请设置 ACR_NAMESPACE}"
|
||||
REPO="${ACR_REPO:-yunhai}"
|
||||
|
||||
APP_IMG="$REGISTRY/$NAMESPACE/$REPO:$APP_VERSION"
|
||||
FRONT_IMG="$REGISTRY/$NAMESPACE/$REPO:$FRONT_VERSION"
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
|
||||
[ -f "$ROOT/service/target/userbase.jar" ] || { echo "缺少 service/target/userbase.jar,请先 mvn package"; exit 1; }
|
||||
[ -f "$ROOT/front/dist/prod/index.html" ] || { echo "缺少 front/dist/prod,请先 npm run build:prod"; exit 1; }
|
||||
|
||||
echo "== login $REGISTRY =="
|
||||
echo "${ACR_PASSWORD:?请设置 ACR_PASSWORD}" | docker login --username="${ACR_USERNAME:?请设置 ACR_USERNAME}" --password-stdin "$REGISTRY"
|
||||
|
||||
echo "== build $APP_IMG =="
|
||||
docker build -f "$ROOT/service/docker/Dockerfile" -t "$APP_IMG" "$ROOT/service"
|
||||
|
||||
echo "== build $FRONT_IMG =="
|
||||
docker build -f "$ROOT/front/docker/Dockerfile" -t "$FRONT_IMG" "$ROOT/front"
|
||||
|
||||
echo "== push =="
|
||||
docker push "$APP_IMG"
|
||||
docker push "$FRONT_IMG"
|
||||
|
||||
echo "PUSHED $APP_IMG"
|
||||
echo "PUSHED $FRONT_IMG"
|
||||
Reference in New Issue
Block a user