This commit is contained in:
2025-07-12 12:45:33 +08:00
parent 8daa71e7c1
commit 8404f4f1cf
5 changed files with 154 additions and 10 deletions

View File

@ -23,15 +23,71 @@ jobs:
- name: 设置Docker构造环境
uses: docker/setup-buildx-action@v3
- name: 构造Node.js Hello World程序
- name: 登录到Gitea Container Registry
uses: docker/login-action@v3
with:
registry: ${{ gitea.server_url }}
username: ${{ gitea.actor }}
password: ${{ gitea.token }}
- name: 构造Docker镜像
run: |
echo "🐳 构造Node.js Hello World程序..."
cat << 'EOF' > Dockerfile
FROM node:18-alpine
WORKDIR /app
RUN echo '{"name": "hello-world", "version": "1.0.0", "main": "app.js"}' > package.json
RUN echo 'console.log("Hello World from Node.js Docker! 🎉")' > app.js
CMD ["node", "app.js"]
EOF
docker build -t nodejs-hello-world:latest .
echo "🐳 构造Node.js Hello World应用镜像..."
# 设置镜像标签
IMAGE_NAME="${{ gitea.server_url }}/${{ gitea.repository_owner }}/hello-world-app"
IMAGE_TAG="latest"
COMMIT_SHA="${{ gitea.sha }}"
echo "📦 镜像名称: $IMAGE_NAME"
echo "🏷️ 镜像标签: $IMAGE_TAG"
echo "📋 提交SHA: $COMMIT_SHA"
# 构造镜像
docker build -t "$IMAGE_NAME:$IMAGE_TAG" -t "$IMAGE_NAME:$COMMIT_SHA" .
echo "✅ Node.js Hello World镜像构造完成"
- name: 推送Docker镜像
run: |
echo "🚀 推送Docker镜像到Gitea registry..."
# 设置镜像标签
IMAGE_NAME="${{ gitea.server_url }}/${{ gitea.repository_owner }}/hello-world-app"
IMAGE_TAG="latest"
COMMIT_SHA="${{ gitea.sha }}"
# 推送镜像
docker push "$IMAGE_NAME:$IMAGE_TAG"
docker push "$IMAGE_NAME:$COMMIT_SHA"
echo "✅ Docker镜像推送完成"
echo "🎉 镜像已推送到: $IMAGE_NAME:$IMAGE_TAG"
echo "🎉 镜像已推送到: $IMAGE_NAME:$COMMIT_SHA"
- name: 测试镜像运行
run: |
echo "🧪 测试构造的镜像..."
IMAGE_NAME="${{ gitea.server_url }}/${{ gitea.repository_owner }}/hello-world-app"
IMAGE_TAG="latest"
# 运行镜像进行测试
docker run -d --name test-container -p 3000:3000 "$IMAGE_NAME:$IMAGE_TAG"
# 等待容器启动
sleep 5
# 测试健康检查
echo "🔍 测试应用健康状态..."
curl -f http://localhost:3000/health || exit 1
# 测试主页
echo "🔍 测试应用主页..."
curl -f http://localhost:3000/ || exit 1
# 停止并删除测试容器
docker stop test-container
docker rm test-container
echo "✅ 镜像测试完成!"