This commit is contained in:
@@ -19,7 +19,7 @@ jobs:
|
||||
- name: 登录到自己的 Docker 仓库
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: registry.bmycode.help
|
||||
registry: ${{ vars.DOCKER_REGISTRY }}
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
@@ -30,8 +30,8 @@ jobs:
|
||||
context: .
|
||||
push: true
|
||||
tags: |
|
||||
registry.bmycode.help/app-product:latest
|
||||
registry.bmycode.help/app-product:${{ github.sha }}
|
||||
${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_IMAGE_NAME }}:latest
|
||||
${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_IMAGE_NAME }}:${{ github.sha }}
|
||||
|
||||
|
||||
- name: 替换镜像标签为 github.sha
|
||||
@@ -46,7 +46,7 @@ jobs:
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: ${{ secrets.PORT }}
|
||||
source: "app-product.yml"
|
||||
target: "/home/bmy/"
|
||||
target: ${{ vars.SSH_MANAGE_PATH }}
|
||||
|
||||
- name: 登录前端集群,拉镜像
|
||||
uses: appleboy/ssh-action@v1
|
||||
@@ -59,15 +59,10 @@ jobs:
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
port: ${{ secrets.PORT }}
|
||||
script: |
|
||||
# 简化版:删除该仓库的所有镜像(无需排除)
|
||||
docker images --format "{{.ID}}" ${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_IMAGE_NAME }} | xargs -r docker rmi -f
|
||||
# 拉取刚打包的最新镜像
|
||||
docker pull registry.bmycode.help/app-product:${{ github.sha }}
|
||||
echo '清理旧的 镜像...'
|
||||
# 删除除了本次 github.sha 和 latest 之外的所有 镜像
|
||||
docker images registry.bmycode.help/app-product --format 'table {{.Repository}}:{{.Tag}}' | \
|
||||
grep -v 'registry.bmycode.help/app-product:${{ github.sha }}' | \
|
||||
grep 'registry.bmycode.help/app-product' | \
|
||||
xargs -r docker rmi -f || true
|
||||
|
||||
docker pull ${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_IMAGE_NAME }}:${{ github.sha }}
|
||||
|
||||
- name: 管理节点部署到 Swarm
|
||||
uses: appleboy/ssh-action@v1
|
||||
@@ -79,4 +74,4 @@ jobs:
|
||||
port: ${{ secrets.PORT }}
|
||||
script: |
|
||||
# 切换到管理员,要不然没权限在服务器执行 docker 命令,部署到 Swarm 集群
|
||||
sudo docker stack deploy -c /home/bmy/app-product.yml app-product
|
||||
sudo docker stack deploy -c ${{ vars.SSH_MANAGE_PATH }}/app-product.yml ${{ vars.DOCKER_IMAGE_NAME }}
|
||||
|
||||
Reference in New Issue
Block a user