Spring Cloud学习:08Docker部署Spring Cloud项目
2018-01-05 00:00
706 查看
摘要: 使用docker Maven插件本地构建docker镜像发布至远程服务器
1.1修改eureka-server模块,在pom.xml文件中添加docker-maven-plugin
1.2 修改yml配置文件
1.3 在eureka-server模块下面新建docker文件夹,新建Dockerfile文件
1.4 执行构建命令
1.5 同样修改one-service模块,添加docker-maven-plugin插件,修改配置文件,添加Dockerfile文件,并构建镜像
yml配置文件
Dockerfile文件
1.6 在远程服务器的docker仓库可以看见构建的两个镜像
1.7 启动镜像
发现one-service服务无法注册
解决方法:在启动服务注册中心镜像时添加name参数,启动one-service时添加link参数指向服务注册中心
服务注册中心存在one-service服务,说明注册成功
请求测试地址,返回测试信息
本文源码下载地址:
https://github.com/laravelshao/spring-cloud-learning/tree/master/setion08-deploy-docker
https://segmentfault.com/a/1190000010313412
http://www.cnblogs.com/cocoat/p/7473785.html
1 修改工程
使用练习1的工程进行修改1.1修改eureka-server模块,在pom.xml文件中添加docker-maven-plugin
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.laravelshao.springcloud</groupId> <artifactId>one-service</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>one-service</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!--docker 镜像前缀--> <docker.image.prefix>laravelshao</docker.image.prefix> <java.version>1.8</java.version> <spring-cloud.version>Dalston.SR3</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!--docker maven插件--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>docker</dockerDirectory> <!--注意 修改成远程服务器地址--> <dockerHost>http://X:X:X:X:2375</dockerHost> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> <dependencies> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.4</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>
1.2 修改yml配置文件
server: port: 8761 # eureka默认端口:8761 eureka: instance: prefer-ip-address: true client: register-with-eureka: false # 是否注册到eureka fetch-registry: false # 是否从eureka获取注册信息
1.3 在eureka-server模块下面新建docker文件夹,新建Dockerfile文件
FROM frolvlad/alpine-oraclejdk8:slim VOLUME /opt/common ADD eureka-server-0.0.1-SNAPSHOT.jar app.jar #RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] EXPOSE 8761
1.4 执行构建命令
mvn clean package docker:build
1.5 同样修改one-service模块,添加docker-maven-plugin插件,修改配置文件,添加Dockerfile文件,并构建镜像
yml配置文件
server: port: 8762 eureka: client: serviceUrl: defaultZone: http://eureka-server:8761/eureka/ #host需要修改为镜像名称 spring: application: name: one-service #指明应用名称(服务与服务相互调用根据name属性)
Dockerfile文件
FROM frolvlad/alpine-oraclejdk8:slim VOLUME /opt/common ADD one-service-0.0.1-SNAPSHOT.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] EXPOSE 8762
1.6 在远程服务器的docker仓库可以看见构建的两个镜像
1.7 启动镜像
docker run -p 8761:8761 -t laravelshao/eureka-server docker run -p 8762:8762 -t laravelshao/one-service
发现one-service服务无法注册
解决方法:在启动服务注册中心镜像时添加name参数,启动one-service时添加link参数指向服务注册中心
docker run --name eureka-server -p 8761:8761 -t laravelshao/eureka-server docker run --link eureka-server:eureka-server -p 8762:8762 -t laravelshao/one-service
服务注册中心存在one-service服务,说明注册成功
请求测试地址,返回测试信息
本文源码下载地址:
https://github.com/laravelshao/spring-cloud-learning/tree/master/setion08-deploy-docker
2 参考资料
史上最简单的SpringCloud教程https://segmentfault.com/a/1190000010313412
http://www.cnblogs.com/cocoat/p/7473785.html
相关文章推荐
- 13.docker部署springcloud项目
- 史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
- 史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
- SpringCloud | Docker 学习系列 | Kubernetes 学习 将SpringCloud Eureka 服务注册与发现部署到docker中并放入到Kubernetes中管理
- docker部署spring cloud项目
- SpringCloud | Docker 学习系列 | Kubernetes 学习 将SpringCloud Config 配置中心部署到docker中并放入到Kubernetes中管理
- 史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
- 史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
- 史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
- SpringCloud: docker部署spring cloud项目
- Spring Cloud Learning | 第十二篇:Docker部署Spring Cloud项目
- 企业级 SpringCloud 教程 (十一) docker部署spring cloud项目
- 史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
- Docker---(5)Docker 部署SpringBoot web项目
- Mac下部署springBoot项目到Docker中(demo)
- Spring Cloud学习笔记之高可用部署
- SpringCloud 注册中心的高可用(tomcat下部署项目)
- 从零开始通过idea插件将一个spring boot项目部署到docker容器里运行
- Spring boot项目在docker下的部署,发布