前言
由于项目上要部署个测试环境,正式环境在阿里云,(最初考虑的是直接拷贝线上镜像到另一个实例中) 但为了节省成本,公司有台多余的物理机,一看内存、cpu都够用就凑合用吧,反正就内网用用还省了外网部署成本。
但是物理机是windows, 想装了linux(虚拟机毕竟性能也跟不上,不能充分利用整机的性能),但装失败了, 时间又紧急,就直接用windows了。 但windows安装这些玩意我没试过啊,所以一一记录一下:
环境说明
win10 我的是win10
jdk8
maven 3.6+
git
nodejs
安装jenkins
jenkins安装很简单,就是一个jar包, 直接java -jar。 贴个文章:
https://blog.csdn.net/test_leader/article/details/108868710/
主要就是先装好插件, 做好配置:
OK, Jenkins准备好了我们先把项目跑起来, 完了再把项目和Jenkins一关联就完事了。
基于docker-compose启动项目
这里docker和docker-compose怎么用不在这多说, 如果不会用建议先去学一下
安装docker和docker-compse
同样贴一个文章:
https://developer.aliyun.com/article/947665
也没有什么坑,大概就是
- 安装docker for windows
- 设置docker 镜像
- 安装后面docker-compose编排必备的几个基本镜像
- nginx
- mysql 对应版本
- jdk 对应版本
- redis
- nacos 对应版本
- 等 - 安装docker-compose基于windows必备
- 它是一个exe文件,把它放在你的docker-compose.yml那一级目录即可像linux中使用docker-compose命令一样正常使用。
调整docker-compose编排文件
由于我的整个配置都是从线上拷贝下来的, 所以需要做稍许调整:
- .mysql: 主要调整了密码
MYSQL_ROOT_PASSWORD
xushu-mysql:
...省略
environment:
MYSQL_ROOT_PASSWORD: 123456
TZ: Asia/Shanghai
- nginx
主要调整ports:
由于线上是通过域名访问,之前只映射80端口, 在测试环境使用本机ip+端口,所以需要把nginx代理的端口,都公开出来:
xushu-nginx:
...省略
ports:
- "80:80"
- "8001:8001"
- "8002:8002"
- "8003:8003"
- "8004:8004"
- "8005:8005"
- "8006:8006"
- "8007:8007"
- "8008:8008"
...省略
- 调整redis密码
- 修改nginx配置
# 权限
server {
listen 80;
# 这里是测试环境局域网ip
server_name 192.168.10.100;
location / {
root /home/xxxx/projects/xxxx;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
# 这里改成测试环境的请求stage-api
location /stage-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://xxxx-gateway:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
调整各个服务的配置
我使用的是nacos-config的配置中心, 把相应的配置改下, 如: redis密码、mysql密码等等, 用测试环境的配置
这里不做过多说明, 根据你自己项目做调整即可
调整前端
前端主要调整环境文件, 根据自己项目做调整
.env.staging
# 测试环境配置
ENV = 'staging'
# 测试环境后端转发前缀, 对应上面nginx的配置
VUE_APP_BASE_API = /stage-api
# 顶级域名 用于不同二级域名的cookie共享
VUE_APP_COOKIE_DOMAIN=192.168.10.100
# 统一登录地址
VUE_APP_TOP_HOST= http://192.168.10.100
编译脚本变为
npm build:staging
运行项目
基本调整完成后, 通过docker-compse.exe up -d xxxx
测试 每一个容器是否能正常访问。
这一步完成后就可以结合jenkins来做持续集成了
新建jenkins任务
后端
前端
和后端的区别仅仅是构建脚本的区别
通过执行任务构建, 测试看能否正常构建, 如果正常, 恭喜你~~撒花,
如果不行, 耐心点,一个个解决编译后的异常, 可以去看看控制台
问题记录:
1. 运行一段时间后C盘爆满问题:
https://blog.csdn.net/liyang_nash/article/details/125143034