diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index ad404c2..7b25265 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -9,7 +9,9 @@ jobs: env: K3S_HOST: 121.37.117.181 APP_NAME: ${{ gitea.repo_name }} - # 核心修改1:替换为你的Gitea内置镜像仓库地址(必填) + # ========== 必须修改1:替换为你的实际镜像仓库地址 ========== + # 若用DockerHub:改为你的DockerHub用户名(如 docker.io/zhangsan) + # 若用Gitea内置仓库:改为 116.204.74.41:3000/red-future REGISTRY: 116.204.74.41:3000/red-future steps: - uses: gitea/actions/checkout@v4 @@ -18,38 +20,44 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - # 2. 核心修改2:登录Gitea内置镜像仓库(替换原DockerHub登录) + # ========== 必须修改2:适配你的镜像仓库登录(二选一) ========== + # 选项A:用Gitea内置镜像仓库(推荐,和你的代码仓库统一) - name: Login to Gitea Registry uses: docker/login-action@v3 with: - registry: 116.204.74.41:3000 # Gitea镜像仓库地址 + registry: 116.204.74.41:3000 username: ${{ secrets.GITEA_USER }} # 需在Gitea配置该密钥 password: ${{ secrets.GITEA_PWD }} # 需在Gitea配置该密钥 - # 3. 构建+推送,启用缓存(适配Gitea仓库) + # 选项B:用DockerHub(若坚持用,注释掉上面的Gitea登录,启用下面这段) + # - name: Login to DockerHub + # uses: docker/login-action@v3 + # with: + # username: ${{ secrets.DOCKER_USER }} + # password: ${{ secrets.DOCKER_PWD }} + + # 3. 构建+推送,启用缓存 - name: Build and push uses: docker/build-push-action@v5 with: context: . push: true - # 镜像标签:Gitea仓库地址/项目名:提交SHA(唯一标识) tags: ${{ env.REGISTRY }}/${{ env.APP_NAME }}:${{ gitea.sha }} - # 缓存配置(适配Gitea仓库) cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.APP_NAME }}:buildcache cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.APP_NAME }}:buildcache,mode=max - # 4. 核心修改3:上传仓库内deploy.yaml到K3s,解决路径不存在 + # ========== 核心修复:解决/k8s/deploy.yaml不存在 ========== - name: SSH部署K3s run: | mkdir -p ~/.ssh echo "${{ secrets.K3S_PEM_KEY }}" > k3s.pem chmod 600 k3s.pem - # 上传仓库根目录的deploy.yaml到K3s临时目录 + # 第一步:上传仓库根目录的deploy.yaml到K3s临时目录 scp -i k3s.pem -o StrictHostKeyChecking=no ./deploy.yaml root@${K3S_HOST}:/tmp/ - # 执行kubectl(指向临时文件+补充命名空间) + # 第二步:执行kubectl命令(指向临时文件+补充命名空间) ssh -i k3s.pem -o StrictHostKeyChecking=no root@${K3S_HOST} << CMD kubectl apply -f /tmp/deploy.yaml kubectl rollout restart deployment ${APP_NAME} -n default - # 可选:清理临时文件 + # 可选:部署完成后删除临时文件 rm -f /tmp/deploy.yaml CMD \ No newline at end of file