58 lines
1.9 KiB
YAML
58 lines
1.9 KiB
YAML
name: 构建并部署
|
||
run-name: ${{ gitea.actor }} 正在部署 Quant Speed Page 🚀
|
||
|
||
on:
|
||
push:
|
||
branches:
|
||
- main
|
||
|
||
jobs:
|
||
build-and-deploy:
|
||
runs-on: ubuntu
|
||
steps:
|
||
- name: 检出代码
|
||
uses: actions/checkout@v3
|
||
|
||
# 1. 登录 Docker Registry
|
||
# 如果你使用 Docker Hub,请在 Gitea 仓库设置 -> Secrets 中配置 DOCKERHUB_USERNAME 和 DOCKERHUB_TOKEN
|
||
- name: 登录到 Docker Hub
|
||
uses: docker/login-action@v2
|
||
with:
|
||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||
|
||
# 2. 构建并推送镜像
|
||
- name: 构建并推送 Docker 镜像
|
||
uses: docker/build-push-action@v4
|
||
with:
|
||
context: .
|
||
push: true
|
||
# 镜像标签,这里使用了 Docker Hub 用户名作为前缀
|
||
tags: ${{ secrets.DOCKERHUB_USERNAME }}/quant-speed-page:latest
|
||
|
||
# 3. 部署到服务器
|
||
# 请在 Gitea 仓库设置 -> Secrets 中配置 SERVER_HOST, SERVER_USER, SERVER_PASSWORD
|
||
- name: 部署到服务器
|
||
uses: appleboy/ssh-action@master
|
||
with:
|
||
host: ${{ secrets.SERVER_HOST }}
|
||
username: ${{ secrets.SERVER_USER }}
|
||
password: ${{ secrets.SERVER_PASSWORD }}
|
||
script: |
|
||
# 停止并删除旧容器(如果存在)
|
||
docker stop quant-speed-page || true
|
||
docker rm quant-speed-page || true
|
||
|
||
# 拉取最新镜像
|
||
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/quant-speed-page:latest
|
||
|
||
# 启动新容器
|
||
# -d: 后台运行
|
||
# --restart unless-stopped: 除非手动停止,否则自动重启
|
||
# -p 80:80: 映射端口
|
||
docker run -d \
|
||
--name quant-speed-page \
|
||
--restart unless-stopped \
|
||
-p 80:80 \
|
||
${{ secrets.DOCKERHUB_USERNAME }}/quant-speed-page:latest
|