Github actions + Docker实现持续部署

准备工作

详细步骤参见参见
https://jszoo.com/detail/32
使用Github action自动部署,需要准备以下东西:

  • 一台能上外网的Linux服务器,并且安装了docker

  • 将已有项目推送到Github仓库

  • 注册阿里云容器镜像服务(免费)

    点我跳转过去

创建镜像仓库

  • 在阿里云容器镜像服务上添加命名空间
    在这里插入图片描述

  • 创建存储镜像的仓库

在这里插入图片描述

  • 创建好以后,选择刚才创建的仓库,点击左侧基本信息,复制一下这个公网地址备用
    在这里插入图片描述

创建Secrets

登录你的github进入项目仓库,依次点击settings>Secrets>New secret
在这里插入图片描述

点击New secret以后出来的页面有2个选项,Name和Value,Name对应上图红框所示,Value填入Name对应的值,简单解释一下:

DOCKER_REPOSITORY: 镜像仓库地址,也就是上一个步骤复制到的公网地址

DOCKER_USERNAME:登录阿里云的账号

DOCKER_PASSWORD: 登录阿里云的密码

HOST:部署项目的服务器ip

HOST_PORT:服务器ssh端口号(默认是22)

HOST_USERNAME:服务器登录用户名(ps:非root权限账号请子u该账号所属组为docker)

HOST_PASSWORD: 登录服务器的密码

ps:这里的Secrets不会被pull,别人也看不到,所以还是比较安全

创建Dockerfile

在github的项目仓库面板,依次点击code>Add file>create new file,Name your file填入Dockerfile,文件内容如下:

FROM node:12.18.0-buster-slim
RUN mkdir -p /usr/src
COPY . /usr/src
WORKDIR /usr/src
RUN npm i
EXPOSE 4000
CMD ["node","app.js"]

ps:EXPOSE根据你的实际情况修改

填好之后点击下方的绿色commit new file按钮

简单解释一下:

在这里插入图片描述

顺便说一下RUN和CMD 的区别,相同点,都是执行命令,不同点在于,RUN 是在打包镜像的时候执行,CMD是在运行容器的执行

创建工作流

在github仓库面板点击Actions按钮,找到Node.js,选择Set up this workflow

在这里插入图片描述

在内容区域ctrl+a全选然后删除,粘贴进以下内容:

name: Docker Image CI/CD
on:
  push:
    branches: [ master ]
jobs:
  build:
    runs-on: ubuntu-latest      
    steps:
      - uses: actions/checkout@v2
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值