Github 自动部署(docker)

github action 自动化部署(docker)

上一篇博客pm2方式自动部署方式类型 一个利用pm2方式 本文利用docker方式

配置文件

name: github-action-demo # 工作流名称
on:
  push:
    branches:
      - develop # 生效分支
jobs:
  first-github-job: # 任务名称 自定义
    runs-on: ubuntu-latest # 运行环境
    steps:
      - name: Checkout
        uses: actions/checkout@v3 #复用的 action 会把仓库代码检出到 runner 中。

      # 压缩项目
      - name: Build project
        run: zip -vr my-artifact ./**

      # 读取package.json的值
      - name: Read Version
        id: version
        uses: ashley-taylor/read-json-property-action@v1.0
        with:
          path: ./package.json
          property: version

      # 发布 Release
      - name: Create Release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.TOKEN }}
        with:
          tag_name: v${{steps.version.outputs.value}}
          release_name: v${{steps.version.outputs.value}}
          draft: false
          prerelease: false

      # 上传构建结果到 Release
      - name: Upload Release Asset
        id: upload-release-asset
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./my-artifact.zip
          asset_name: my-artifact.zip
          asset_content_type: application/zip

      # 把文件上传到服务器
      - name: Upload to Deploy Server
        uses: easingthemes/ssh-deploy@main
        env:
          # SSH_PRIVATE_KEY为准备工作步骤三中生成密钥对里的私钥
          SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_TOKEN }}
          # 指定当前目录中要上传的内容
          SOURCE: "./**"
          # 指定上传到部署机器的哪个目录下
          TARGET: "/apps/koa-koa"
          # 上传前指令,此处用于清空TARGET下的文件
          ARGS: "-avzr --delete"
          # REMOTE_HOST为机器的公网IP
          REMOTE_HOST: ${{ secrets.HOST }}
          # REMOTE_USER 为登录机器时用到账号名
          REMOTE_USER: ${{secrets.USERNAME}}

          # 排除上传的文件 用,隔开
          EXCLUDE: my-artifact.zip

          SCRIPT_AFTER: |
            docker stop my-koa  # 停止容器
            docker rm my-koa	# 销毁容器
            docker pull yydsyyll/auto-deploy-koa:0.0.1	# 拉取容器
            docker images	# 查看镜像列表
            docker run -d --name my-koa -p 5000:5000 -v /apps/koa-koa:/apps/koa-koa auto-deploy-koa:0.0.1

变量解释

docker run -d --name my-koa -p 5000:5000 -v /apps/koa-koa:/apps/koa-koa auto-deploy-koa:0.0.1

docker run 命令 从镜像生成容器
-d:后台启动
-p:容器的 5000 端口映射到本机的 5000 端口
--name:指定容器名称
-v:目录挂载(一旦容器销毁了 数据也都没了 保存容器的数据到宿主机上)

仓库地址:https://github.com/yi-xiaobai/koa-koa

posted @ 2023-05-11 11:01  晚秋时节  阅读(146)  评论(0)    收藏  举报