Compare commits

..

2 Commits
main ... main

Author SHA1 Message Date
administrator 9f87ef2a74 Add restart.sh 2026-03-25 14:59:04 +00:00
administrator 47306870c2 Add buildspec.yml 2026-03-25 14:58:00 +00:00
2 changed files with 62 additions and 0 deletions

48
buildspec.yml Normal file
View File

@ -0,0 +1,48 @@
# AWS CodeBuild从 CodeCommit 仓库 pms 拉取代码仓库根目录即应用根Dockerfile、backend/、frontend/ 等)
# 构建 Docker 镜像并推送到 ECR中国区 cn-northwest-1无需 cd工作目录已是应用根
# 环境变量 IMAGE_REPO_NAME、AWS_ACCOUNT_ID、AWS_DEFAULT_REGION 由 CodeBuild 或 Pipeline 注入
# PYTHON_BASE_IMAGE 已设为 ECR 中的 python-base运行阶段基于该镜像避免重复 apt/pip 安装
version: 0.2
phases:
pre_build:
commands:
- echo Logging in to Amazon ECR...
- "aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com.cn"
- "IMAGE_TAG=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)"
- "IMAGE_URI=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com.cn/$IMAGE_REPO_NAME:$IMAGE_TAG"
- echo Build image $IMAGE_URI
- "echo Using BASE_IMAGE for runtime: ${PYTHON_BASE_IMAGE:-python:3.12-slim}"
build:
commands:
- echo Building frontend Vue on host to avoid Docker Hub node image
- command -v npm >/dev/null || (dnf install -y nodejs 2>/dev/null || yum install -y nodejs 2>/dev/null || true)
# 需安装 devDependenciesvite、@vitejs/plugin-vue才能执行 npm run build
- cd frontend && (npm ci 2>/dev/null || npm install) && npm run build
- cd ..
- |
if [ -n "$PYTHON_BASE_IMAGE" ]; then
docker build --build-arg BASE_IMAGE=$PYTHON_BASE_IMAGE -t $IMAGE_URI -f Dockerfile .
else
docker build -t $IMAGE_URI -f Dockerfile .
fi
- docker tag $IMAGE_URI $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com.cn/$IMAGE_REPO_NAME:latest
post_build:
commands:
- docker push $IMAGE_URI
- docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com.cn/$IMAGE_REPO_NAME:latest
- echo Build completed on $(date)
- echo Image $IMAGE_URI
artifacts:
files:
- build.log
cache:
paths:
- '/root/.npm/**/*'
- 'frontend/node_modules/**/*'
env:
variables:
# 使用 ECR 中的 python-base 作为运行阶段基础镜像,避免 Docker Hub 超时及重复 pip 安装
PYTHON_BASE_IMAGE: "833395216036.dkr.ecr.cn-northwest-1.amazonaws.com.cn/python-base:latest"

14
restart.sh Normal file
View File

@ -0,0 +1,14 @@
#!/bin/bash
# 重启 docker-compose 服务
# 进入 docker-compose.yml 所在目录
cd "$(dirname "$0")" || exit 1
echo "Stopping docker-compose services..."
docker-compose down
echo "Starting docker-compose services..."
docker-compose up -d
echo "Services restarted successfully!"