目录
直接部署
使用docker和Nginx部署
直接部署
1 | 前期准备 |
1.服务器初次部署需要安装go环境
1 | apt install golang-go |
2.设置云服务器安全组开放入方向的对应端口
3.拉取项目
- 云服务器执行以下命令切换到工作目录
1
cd /home/gowork/gopath
- clone项目
1
2
3git clone xx
# 默认拉master,若想拉取名为dev的分支用 git clone -b dev xx - 进入到项目地址
1
cd alumni_platform
- 安装项目依赖
1
2
3
4go mod tidy
# 若出现 Get https://proxy.golang.org/github.com/%21puerkito%21bio/goquery/@v/v1.8.0.mod: dial tcp 172.217.163.49:443: i/o timeou这种错误,则说明代理超时
# 使用go env -w GOPROXY=https://goproxy.cn切换代理后再重新执行 - 运行项目
1
go run cmd/user_web_api/main.go
4.此时就可以通过“主机ip:端口号/xx”来使用接口了
5.后续直接在项目里使用git pull更新,若不想每次都输入账号密码则使用以下命令开启全局git设置
1 | git config --global credential.helper store |
使用Docker和Nginx部署
Docker相关
1.安装docker步骤见本站文章“【工具】Docker的使用”
2.编写Dockerfile并放到项目根目录中(一定要放到根目录下才能执行),以下是一个Dockerfile的demo
1 | # 从官方仓库中获取 1.17 的 Go 基础镜像 |
3.在服务器上,cd目录到Dockerfile的路径下执行
1 | docker build -t user_web:v1.1 . |
4.清理无用镜像
1 | # 停止容器 |
5.启动镜像
1 | docker run -p 8080:8080 -d --name user_web user_web:v1.1 |
6.查看镜像和容器运行状态
1 | docker images |
7.记得在安全组规则添加开放云服务器的8080端口
8.此时就可以用云服务器公网ip地址:8080/xx来使用接口了
9.删除镜像
1 | # 停止容器 |
10.一键部署Docker的shell脚本
- build_user_web.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26#! /bin/bash
echo "first sh statrt"
# 停止正在运行的容器
docker stop $(docker ps -a | grep "Up" | awk '{print $1 }')
# 删除停止的容器
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')
# 删除名为"user_web"的镜像
docker rmi $(docker images | grep "user_web" | awk '{print $3}')
# 切换到my_sense项目路径
cd /home/gowork/gopath/my_sense
# 用该目录的Dockerfile打包成镜像user_web,版本号设为v1.1
docker build -t user_web:v1.1 .
# 运行user_web:v1.1镜像,生成实例容器user_web
docker run -p 8080:8080 -d --name user_web user_web:v1.1
# 删除打包过程中产生的中间镜像<none>
docker rmi $(docker images | grep "none" | awk '{print $3}')
echo "first sh end"
定时运行脚本
1.编辑crontab文件,用来存放你要执行的命令(如果是第一次使用该命令还需选打开方式,建议选vim.basic)
1 | sudo crontab -e |
2.在# m h dom mon dow command这一行下添加要执行的命令,例如
1 | 0 9 * * * /home/katyusha/code/sendemail.py |
3.重启cron来应用这个计划任务
1 | sudo service cron restart |
4.一些命令实例
- 30 20 * * * date >> /home/date.log //每天的20:30将日期信息追加home目录下的date.log中
- 5 20 13,14 * * date >> /home/date.log //每月的13日,14日20:5分将日期信息最追加home目录下的date.log中
- 0,10 10,12 * * * date >> /home/date.log 每天10点至12点之间,隔10分钟将日期信息最追加home目录下的date.log中
- /5 * * * date >> /home/date.log //每5分钟将日期信息最追加home目录下的date.log中
5.查看cron是否在运行
1 | ps -ef | grep cron |
6.操作cron服务
1 | crontab -l //查看设置的所有定时任务,其实就是只读方式打开 |