<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- tag::plugin[] -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<baseImage>java</baseImage>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- end::plugin[] -->
</plugins>
</build>
· resources是指那些需要和Dockerfile放在一起,在构建镜像时使用的文件,一般应用 jar 包需要纳入。resources.resource.directory用于指定需要复制的根目录,${project.build.directory}表示target目录,resources.resource.include用于指定需要复制的文件,${project.build.finalName}.jar指的是打包后的jar包文件。
server.port=8761
eureka.instance.prefer-ip-address=true
# 代表不向注册中心注册自己
eureka.client.register-with-eureka=false
# 由于注册中心的职责就是维护服务实例,它并不需要去检索服务,所以设置为false
eureka.client.fetch-registry=false
最后使用maven命令构建镜像:
mvn clean package docker:build
spring.application.name=hello-service
# host改为镜像名
eureka.client.serviceUrl.defaultZone=http://eureka-server:8761/eureka
server.port=8763
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.application.name}:${random.int}
mvn clean package docker:build
到这里eureka-server和eureka-client镜像已经都构建好了,接着使用命令行启动镜像:
# 启动服务器
docker run --name eureka-server -p 8761:8761 -t dan/eureka-server
# 注册服务
docker run --link eureka-server:8761 -p 8763:8763 -t dan/eureka-client
version: '3'
services:
eureka-server:
image: dan/eureka-server
ports:
- "8761:8761"
hello-service:
image: dan/eureka-client
ports:
- 8763
links:
- eureka-server
service-ribbon:
image: dan/service-ribbon
ports:
- "8764:8764"
links:
- eureka-server
service-feign:
image: dan/service-feign
ports:
- "8765:8765"
links:
- eureka-server
service-zuul:
image: dan/service-zuul
ports:
- "8769:8769"
links:
- eureka-server
最后执行命令启动镜像:
docker-compose up
http://localhost:8761/
如果要增加或减少docker实例,直接使用docker-compose scale hello-service=3修改实例数;停止运行则使用docker-compose stop即可。