一、微服务的封装
采用Docker实现,Docker相关知识可参考另一篇博文。
SpringBoot和Docker整合
添加插件docker-maven-plugin 『github传送门』,该插件为Spotify公司开发的Maven插件。
可使用带dockerfile和不带dockerfile的两种方式。
1 | <plugin> |
执行以下命令,构建Docker镜像
1 | $ mvn clean package docker:build |
如采用dockerfile文件,需更改上方pom文件注释掉的代码。在resource目录下增加dockerfile文件,内容如下:
1 | FROM java:8 |
使用docker:build命令生成dockerfile和jar包。
使用docker:push推送到docker的本地registry服务器。
使用如下命令运行:
1 | docker run -d --name springboot-hello -p 58080:8080 127.0.0.1:5000/com.msa/hello:0.0.1 |
二、微服务的部署-Jenkins
使用Git管理代码,使用Maven构建项目,使用Docker封装服务,这些都需要手工完成。可需要Jenkins来完成自动化发布。
Jenkins搭建
Jenkins的dockerfile托管在Github『传送门』,可使用如下命令获取并启动Jenkins:
1 | $ docker run -d --name jenkins1 -p 18080:8080 -v ~/docker/jenkins:/var/jenkins_home jenkins/jenkins |
GitLab安装
1 | $ docker run -d -h gitlab.xxx.com --name gitlab1 -p 10022:22 -p 10080:80 -v ~/docker/gitlab/etc:/etc/gitlab -v ~/docker/gitlab/log:/var/log/gitlab -v ~/docker/gitlab/opt:/var/opt/gitlab gitlab/gitlab-ce |
可访问localhost:10080配置gitlab。也可修改/etc/hosts域名gitlab.xxx.com指向本地10080端口。将使用root用户创建项目springboot-first。
如使用ssh,需要生成ssh公钥
1 | $ git config --global --list #查看git config,如没有需要设置 |
可使用http,使用git命令推送
1 | git remote rm origin |
访问http://localhost:18080/ 进行初始化,进行maven插件安装,如插件管理页面没有『maven plugin』,可在『下载地址』下载maven-plugin.hpi,并在插件管理-高级进行手动上传安装。