Docker部署Spring Cloud项目

170 阅读1分钟

准备工作

阅读此文章前请务必具备简单的SpringCloud项目搭建

参考地址:www.fangzhipeng.com/spring-clou…

改造工程、构建镜像

改造eurekaserver工程

在pom文件加上插件

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
           <!-- 添加docker Plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
            <!-- Plugin结束 -->
        </plugins>
    </build>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Dalston.SR3</spring-cloud.version>
        <docker.image.prefix>Jovi</docker.image.prefix>
        <!-- 此处衔接properties -->
    </properties>

imageName指定镜像名称,最好全用小写,大写可能会报错

dockerDirectory指定 Dockerfile 的位置,本例在src/main/docker,名称使用Dockerfile,不需要驼峰命名

修改application.yml

server:
  port: 8761

eureka:
  instance:
    hostname: xxxx
    prefer-ip-address: true
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

spring:
  application:
    name: eurka-server

编写Dockerfile文件: 在src/main/docker下新建Dockerfile,名称使用Dockerfile,不需要驼峰命名

FROM kdvolder/jdk8
VOLUME /tmp
ADD server-0.0.1-SNAPSHOT.jar server.jar
RUN bash -c 'touch /server.jar'
ENTRYPOINT ["java","-jar","/server.jar"]
EXPOSE 8761

FROM处填写可参考:blog.csdn.net/qq_18881987…

同理构建service-hi镜像

运行docker:

docker run --name server -d -p 8761:8761 jovi/server

docker run --name service-hi --link server -d -p 8762:8762 jovi/service-hi

若此处8762项目启动有提示SERVER.PROT报错可进行如下操作

docker rm service-hi -f

docker run --name service-hi --link server -d -e SERVER_PORT='8762' -p 8762:8762 jovi/service-hi

访问IP:8761

{IP}就是部署镜像的IP地址

Spring Could Windows打包构建docker镜像到linux

链接:juejin.cn/post/684490…