目录
Maven插件实现springcloud微服务容器化自动部署
阿里云镜像仓库配置
1、登录阿里云:https://account.aliyun.com/login/login.htm , 然后进入管理控制台,选择容器镜像服务,点击镜像仓库。
注意:第一次进入可能会出现如下提示,则设置一下阿里云 Docker 镜像仓库传统一密码。 特别注意 :后面上传镜像时,用的就是这个设置的密码, 帐号还是登录阿里云的帐号。
2.、创建一个公开镜像仓库
3、点击镜像库可以看到操作指南中有登陆上传拉取镜像的命令。
Maven插件实现springcloud微服务容器化自动部署
1、配置maven环境
2、修改宿主机的docker配置
- 修改宿主机的docker配置,让其docker服务可以远程访问, 暴露的docker服务端口号 2375。
vim /lib/systemd/system/docker.service
- 在 ExecStart= 后添加加配置
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
- 0.0.0.0 代表所有 ip ,也可指定 ip。修改后如下:
- 刷新配置,重启服务
systemctl daemon-reload
systemctl restart docker
- 验证是否生效,访问:http://192.168.10.11:2375/version , 响应如下内容则成功:
3、自动化部署微服务项目
(没有学习微服务的朋友,可以先了解一下微服务和springcloud)
部署配置中心
1、在
Maven
的安装目录下的
settings.xml
文件中添加阿里帐号和
镜像固定密码
<servers>
<server>
<!--maven的pom中可以根据这个id找到这个server节点的配置-->
<id>docker-aliyun</id>
<!--这里是在阿里云注册的账号-->
<username>在阿里云注册的账号</username>
<!--这里是在阿里云注册的密码-->
<password>在阿里云注册的密码</password>
</server>
</servers>
2、在配置中心工程的 pom.xml 增加插件配置(根据自己的具体情况做一些修改)
<build>
<!-- 打jar包的文件名 -->
<finalName>config</finalName>
<plugins>
<!-- 插件一定要在其他构建插件之上,否则打包文件会有问题。 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- docker的maven插件,官网:
https://github.com/spotify/docker-maven-plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!--生成镜像相关配置-->
<configuration>
<!-- 将forceTags设为true,这样就会覆盖构建相同标签的镜像 -->
<forceTags>true</forceTags>
<!-- 远程 docker 宿主机地址, 端口号是/lib/systemd/system/docker.service所暴露的端口号, 生成镜像到docker中 -->
<dockerHost>http://192.168.10.11:2375</dockerHost>
<!--内容是之前修改的maven的settings.xml配置文件中,server节点的id-->
<serverId>docker-aliyun</serverId>
<!-- 镜像名:阿里云镜像仓库地址
${project.artifactId}引用当前工程名,
${project.version}引用当前工程版本号
registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名:版本号 -->
<imageName>registry.cn-hangzhou.aliyuncs.com/haogenmin_study/${project.artifactId}:${project.version}</imageName>
<!--基础镜像-->
<!--<baseImage>jdk1.8</baseImage>-->
<baseImage>java</baseImage>
<!--类似于Dockerfile的ENTRYPOINT指令-->
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource> <!-- 指定打包的资源文件 -->
<targetPath>/</targetPath> <!-- 指定要复制的目录路径,这里是当前目录 -->
<directory>${project.build.directory}</directory> <!-- 指定要复制的根目录,这里是target目录 -->
<include>${project.build.finalName}.jar</include> <!-- 这里指定最后生成的jar包 -->
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
3、打包上传到阿里云
宿主机查看:
阿里云查看:
4、在容器中启动项目
5、访问检查
这是我放在git上的配置文件,通过配置中心微服务请求到了数据,说明运行成功。
部署Eureka注册中心
1、先保证配置中心的服务开启,注册服务需要配置中心的配置文件
2、在阿里云创建一个相应的仓库
3、修改eureka的配置文件中需要更改的IP地址,因为转移到生产环境运行,IP自然不同。
4、在eureka项目pom文件中增加插件配置,同上,然后同样打包上传运行。
5、测试结果
部署一个注册在注册中心的服务提供者
1、先启动mysql,rabbitmq等需要的容器,前面几篇有说过启动步骤。
2、同理修改项目中相应的IP和端口。
3、增加插件配置。
4、打包,上传,运行。
(微服务的知识有机会再分享)