All checks were successful
continuous-integration/drone/push Build is passing
问题: - plugins/docker 尝试推送镜像到 Docker Hub - 没有配置认证导致 'denied: requested access to resource is denied' 解决方案: - 移除 plugins/docker 步骤 - 添加 drone-scp 步骤传输构建产物(dist、Dockerfile、nginx.conf) - 在部署服务器上执行 docker build - 直接使用本地镜像启动容器 优势: - 不需要配置 Docker Hub 认证 - 不需要推送和拉取镜像,更快 - 镜像只存在于部署服务器本地 - 修正健康检查 URL 为 http://154.30.6.21/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
70 lines
1.6 KiB
YAML
70 lines
1.6 KiB
YAML
kind: pipeline
|
||
type: docker
|
||
name: 武术系统前端自动部署
|
||
|
||
# 只在 main 分支触发
|
||
trigger:
|
||
branch:
|
||
- main
|
||
event:
|
||
- push
|
||
|
||
steps:
|
||
# 步骤1:安装依赖
|
||
- name: 安装依赖
|
||
image: node:18-alpine
|
||
commands:
|
||
- echo "开始安装 npm 依赖..."
|
||
- npm install
|
||
- echo "✅ 依赖安装完成"
|
||
|
||
# 步骤2:构建生产版本
|
||
- name: 构建前端项目
|
||
image: node:18-alpine
|
||
commands:
|
||
- echo "开始构建前端项目..."
|
||
- npm run build
|
||
- ls -lh dist/
|
||
- echo "✅ 前端构建完成"
|
||
|
||
# 步骤3:传输文件到服务器
|
||
- name: 传输构建产物
|
||
image: appleboy/drone-scp
|
||
settings:
|
||
host: 154.30.6.21
|
||
username: root
|
||
key:
|
||
from_secret: ssh_key
|
||
port: 22
|
||
target: /app/martial/frontend-build
|
||
source:
|
||
- dist/*
|
||
- Dockerfile
|
||
- nginx.conf
|
||
strip_components: 0
|
||
|
||
# 步骤4:在服务器上构建镜像并部署
|
||
- name: 部署到生产环境
|
||
image: appleboy/drone-ssh
|
||
settings:
|
||
host: 154.30.6.21
|
||
username: root
|
||
key:
|
||
from_secret: ssh_key
|
||
port: 22
|
||
script:
|
||
- cd /app/martial/frontend-build
|
||
- docker build -t martial/frontend:latest .
|
||
- cd /app/martial
|
||
- docker-compose up -d frontend
|
||
- docker ps | grep martial-frontend
|
||
- echo "✅ 前端部署完成"
|
||
|
||
# 步骤5:健康检查
|
||
- name: 健康检查
|
||
image: curlimages/curl:latest
|
||
commands:
|
||
- sleep 5
|
||
- curl -f http://154.30.6.21/ || exit 1
|
||
- echo "✅ 前端访问正常"
|