本文正在参加「金石计划 . 瓜分6万现金大奖」。
github actions
监听 git
提交,并执行自定义命令docker
可以一键部署开发环境ssh root@82.156.xxx.xx
// 然后输入密码
// 退出
exit
adduser work
passwd work
// 然后输入两次密码
// 找到文件位置
whereis sudoers
// 修改权限
chmod u+w /etc/sudoers
// 编辑文件 找到 root ALL=(ALL) ALL 再添加一行 work ALL=(ALL) ALL
vim /etc/sudoers
// 修改权限
chmod u-w /etc/sudoers
退出 root
账号,使用 work
登录云服务器,然后执行 su
,再输入 root
账号的密码,即可拥有超级权限。
root
账号可以免密登录了, work
账号不能,没弄明白,就先用 root
账号操作吧,反正就我自己用。
安装 git
yum -y install git
git --version
安装 docker
👉👉 CentOS安装文档
查看版本
docker --version
docker compose version
设置镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
cd /etc/yum.repos.d/
ll
线上环境,不会开放这么多端口,而是用 nginx
反向代理
github actions
监听 main
分支 push
行为main
分支代码docker-compose build editor-server
docker-compose up -d
# dev 分支 自动部署到测试机
name: deploy for dev
on:
push:
branches:
- 'main' # 只针对 main 分支
paths:
- '.github/workflows/*'
# - '__test__/**' # dev 不需要立即测试
- 'src/**'
- 'Dockerfile'
- 'docker-compose.yml'
- 'bin/*'
jobs:
deploy-dev:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: set ssh key # 临时设置 ssh key
run: |
mkdir -p ~/.ssh/
echo "${{secrets.WFP_ID_RSA}}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan "82.156.xxx.xx" >> ~/.ssh/known_hosts
- name: deploy # 部署
run: |
ssh root@82.156.xxx.xx "
cd /home/work/imooc-lego/biz-editer-server;
git remote add origin https://${{secrets.WFP_TOKEN}}@github.com/alanhzw/biz-editer-server.git;
git checkout dev;
git pull origin dev; # 重新下载最新代码
git remote remove origin; # 删除 origin ,否则会暴露 github 密码
# 启动 docker
docker compose build editor-server; # 和 docker-compose.yml service 名字一致
docker compose up -d;
"
- name: delete ssh key # 删除 ssh key
run: rm -rf ~/.ssh/id_rsa
把本机的私钥放在代码仓库 setting
里面的 Secrets
中
教程里面是用用户名密码的方式克隆仓库的,但是现在已经不支持了,需要使用个人的 token
点击 settings
点击 Developer settings
点击 Generate new token
选择永不过期,把所有的框都勾选上
最后点击 Generate token
生成令牌
将生成的令牌拷贝下来,保存,下次就看不到了。
然后把马赛克的地方换成刚才复制的 token
就可以克隆仓库了。
删除 git 源,以免暴露信息
git remote remove origin
git remote -v
提交代码,github actions
正常
到云服务器上检查一下,镜像正常
远程访问一下接口,是通的,完美!!!