first commit
Some checks failed
本地构建并运行容器 / build (push) Has been cancelled

This commit is contained in:
2026-05-28 00:43:58 +08:00
parent 0b1d447622
commit 882f287ed4
3 changed files with 82 additions and 4 deletions

View File

@@ -0,0 +1,72 @@
name: 本地构建并运行容器
on:
push:
branches: [ main ]
paths-ignore:
- "README.md"
- "*.md"
- ".git"
- ".gitea"
- ".dockerignore"
- ".gitignore"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 拉取最新代码
uses: actions/checkout@v4
- name: 构建镜像
uses: docker/build-push-action@v5
with:
context: .
push: false
tags: |
${{ vars.IMAGE_NAME }}:latest
- name: 停止并删除旧容器
run: |
CONTAINER_NAME="${{ vars.IMAGE_NAME }}"
docker stop ${CONTAINER_NAME} 2>/dev/null || true
docker rm ${CONTAINER_NAME} 2>/dev/null || true
echo "✅ 停止并删除旧容器 ${CONTAINER_NAME} 成功..."
- name: 运行新容器
run: |
# 容器名称
CONTAINER_NAME="${{ vars.IMAGE_NAME }}"
# 启动容器
docker run -d \
--name ${CONTAINER_NAME} \
--restart always \
${{ vars.IMAGE_NAME }}:latest
- name: 验证容器状态
run: |
CONTAINER_NAME="${{ vars.IMAGE_NAME }}"
if docker ps --filter "name=${CONTAINER_NAME}" --filter "status=running" | grep -q ${CONTAINER_NAME}; then
echo "✅ 容器 ${CONTAINER_NAME} 启动成功"
# 显示容器日志
docker logs ${CONTAINER_NAME} --tail 50
else
echo "❌ 容器 ${CONTAINER_NAME} 启动失败"
docker logs ${CONTAINER_NAME}
exit 1
fi
- name: 清理旧镜像
run: |
CONTAINER_NAME="${{ vars.IMAGE_NAME }}"
OLD_IMAGES=$(docker images --filter "reference=${CONTAINER_NAME}:*" --format "{{.ID}}" | tail -n +6)
if [ -n "${OLD_IMAGES}" ]; then
echo "🗑️ 清理旧镜像:${OLD_IMAGES}"
echo "${OLD_IMAGES}" | xargs -r docker rmi -f 2>/dev/null
echo "✅ 旧镜像清理成功"
else
echo "✅ 无旧镜像需要清理"
fi