Jenkins+Docker+SpringCloud持续集成流程说明
大致流程说明:
1)开发人员每天把代码提交到Gitlab代码仓库
2)Jenkins从Gitlab中拉取项目源码,编译并打成jar包,然后构建成Docker镜像,将镜像上传到
Harbor私有仓库。
3)Jenkins发送SSH远程命令,让生产部署服务器到Harbor私有仓库拉取镜像到本地,然后创建容器。
4)最后,用户可以访问到容器
服务列表(红色的软件为需要安装的软件,黑色代表已经安装)
SpringCloud微服务源码概述
项目架构:前后端分离
后端技术栈:SpringBoot+SpringCloud+SpringDataJpa(Spring全家桶)
微服务项目结构:
tensquare_parent :父工程,存放基础配置
tensquare_common :通用工程,存放工具类
tensquare_eureka_server :SpringCloud的Eureka注册中心
tensquare_zuul :SpringCloud的网关服务
tensquare_admin_service :基础权限认证中心,负责用户认证(使用JWT认证)
tensquare_gathering :一个简单的业务模块,活动微服务相关逻辑
tensquare_user :用户认证数据库,存放用户账户数据。对应tensquare_admin_service微服务
tensquare_gathering:活动微服务数据库。对应tensquare_gathering微服务
微服务配置分析:
tensquare_eureka
tensquare_zuul
tensquare_admin_service
tensquare_gathering
启动然后开始测试
[root@servcie01 jar]# vim Dockerfile [root@servcie01 jar]# docker build --build-arg JAR_FILE=tensquare_eureka_server-1.0-SNAPSHOT.jar -t eureka:v1 . Sending build context to Docker daemon 44.76MB Step 1/5 : FROM openjdk:8-jdk-alpine 8-jdk-alpine: Pulling from library/openjdk e7c96db7181b: Pull complete f910a506b6cb: Pull complete c2274a1a0e27: Pull complete Digest: sha256:94792824df2df33402f201713f932b58cb9de94a0cd524164a0f2283343547b3 Status: Downloaded newer image for openjdk:8-jdk-alpine ---> a3562aa0b991 Step 2/5 : ARG JAR_FILE ---> Running in 4006ee9cbd19 Removing intermediate container 4006ee9cbd19 ---> 46364eca6645 Step 3/5 : COPY ${JAR_FILE} app.jar ---> d988344ced20 Step 4/5 : EXPOSE 10086 ---> Running in 910b5e75af4c Removing intermediate container 910b5e75af4c ---> 5021ade6456b Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"] ---> Running in afeb8fd8acc1 Removing intermediate container afeb8fd8acc1 ---> bbe3b55ecb06 Successfully built bbe3b55ecb06 Successfully tagged eureka:v1 [root@servcie01 jar]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE eureka v1 bbe3b55ecb06 24 seconds ago 150MB openjdk 8-jdk-alpine a3562aa0b991 12 months ago 105MB [root@localhost jar]# cat Dockerfile FROM openjdk:8-jdk-alpine ARG JAR_FILE COPY ${JAR_FILE} app.jar EXPOSE 10086 ENTRYPOINT ["java","-jar","/app.jar"] [2]+ Killed java -jar tensquare_eureka_server-1.0-SNAPSHOT.jar [root@localhost jar]#
然后本地服务连上镜像中的eureka
进行测试,发现权限不足
登录获取token
带着token去请求测试。
本地部署(2)-前端静态web网站
前端技术栈:NodeJS+VueJS+ElementUI
使用Visual Studio Code打开源码
1)本地运行
npm run dev
2)打包静态web网站
npm run build
打包后,产生dist目录的静态文件
3)部署到nginx服务器
把dist目录的静态文件拷贝到nginx的html目录,启动nginx
4)启动nginx,并访问