From a38bb5d38a280ca6d748b6ebab83ff355a1bc09c Mon Sep 17 00:00:00 2001 From: shanshanzhong Date: Thu, 25 Sep 2025 11:24:18 -0700 Subject: [PATCH] i8 --- .gitea/workflows/docker.yml | 16 ++++++++++++---- Makefile | 23 +++++++++++++++++++++++ 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml index d280441..de1c9e7 100644 --- a/.gitea/workflows/docker.yml +++ b/.gitea/workflows/docker.yml @@ -82,6 +82,9 @@ jobs: echo "BUILD_TARGET=$BUILD_TARGET" >> $GITHUB_ENV echo "Decided BUILD_TARGET=$BUILD_TARGET" + - name: Read version from package.json + run: echo "VERSION=$(jq -r .version package.json)" >> $GITHUB_ENV + - name: Build Admin (turbo via bun) if: env.BUILD_TARGET == 'admin' || env.BUILD_TARGET == 'both' run: bun run build --filter=ppanel-admin-web @@ -92,14 +95,19 @@ jobs: - name: Build Docker (admin) if: env.BUILD_TARGET == 'admin' || env.BUILD_TARGET == 'both' - run: make build-admin + run: docker build -f ./docker/ppanel-admin-web/Dockerfile -t ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-admin-web:${{ env.VERSION }} . - name: Build Docker (user) if: env.BUILD_TARGET == 'user' || env.BUILD_TARGET == 'both' - run: make build-user + run: docker build -f ./docker/ppanel-user-web/Dockerfile -t ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }} . - - name: Push Docker Images - run: make push + - name: Push Docker Image (admin) + if: env.BUILD_TARGET == 'admin' || env.BUILD_TARGET == 'both' + run: docker push ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-admin-web:${{ env.VERSION }} + + - name: Push Docker Image (user) + if: env.BUILD_TARGET == 'user' || env.BUILD_TARGET == 'both' + run: docker push ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }} - name: Notify success to Telegram uses: chapvic/telegram-notify@master diff --git a/Makefile b/Makefile index c58b22b..c7fb885 100644 --- a/Makefile +++ b/Makefile @@ -59,6 +59,29 @@ push-user: ## Push the user image to the registry @echo "Successfully pushed user image." +# ============================================================================== +# Run Targets +# ============================================================================== + +.PHONY: ensure-version +ensure-version: + @if [ -z "${VERSION}" ] || [ "${VERSION}" = "null" ]; then \ + echo "ERROR: 未检测到版本号。请安装 jq 并在 panel-web/package.json 中设置有效的 version 字段。"; \ + echo "提示:可以运行 'make version' 查看当前版本值。"; \ + exit 1; \ + fi + +.PHONY: admin-run +admin-run: ensure-version ## Run the admin container locally (binds to localhost:3000) + @echo "Running admin container from image ${ADMIN_IMAGE}:${VERSION} on http://localhost:3000 ..." + docker run --name ppanel-admin-web --rm -e NEXT_PUBLIC_API_URL=https://airoport.co -p 3000:3000 ${ADMIN_IMAGE}:${VERSION} + +.PHONY: user-run +user-run: ensure-version ## Run the user container locally (binds to localhost:3001) + @echo "Running user container from image ${USER_IMAGE}:${VERSION} on http://localhost:3001 ..." + docker run --name ppanel-user-web --rm -p 3001:3000 ${USER_IMAGE}:${VERSION} + + # ============================================================================== # Other Targets # ==============================================================================