记一次Windows的Jenkins+docker-compse+gitee前后端持续集成部署过程

前言

由于项目上要部署个测试环境,正式环境在阿里云,(最初考虑的是直接拷贝线上镜像到另一个实例中) 但为了节省成本,公司有台多余的物理机,一看内存、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
也没有什么坑,大概就是

  1. 安装docker for windows
  2. 设置docker 镜像
  3. 安装后面docker-compose编排必备的几个基本镜像
    - nginx
    - mysql 对应版本
    - jdk 对应版本
    - redis
    - nacos 对应版本
    - 等
  4. 安装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任务

后端

记一次Windows的Jenkins+docker-compse+gitee前后端持续集成部署过程_第1张图片

前端

和后端的区别仅仅是构建脚本的区别
记一次Windows的Jenkins+docker-compse+gitee前后端持续集成部署过程_第2张图片


通过执行任务构建, 测试看能否正常构建, 如果正常, 恭喜你~~撒花,
在这里插入图片描述
如果不行, 耐心点,一个个解决编译后的异常, 可以去看看控制台
在这里插入图片描述
记一次Windows的Jenkins+docker-compse+gitee前后端持续集成部署过程_第3张图片

问题记录:

1. 运行一段时间后C盘爆满问题
https://blog.csdn.net/liyang_nash/article/details/125143034

你可能感兴趣的:(部署,jenkins,docker,windows)