博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker打包springboot与Springcloud项目
阅读量:3763 次
发布时间:2019-05-22

本文共 5266 字,大约阅读时间需要 17 分钟。

一、docker打包Springcloud项目

使用之前项目中的两个

springcloud-eureka-serverspringcloud-eureka-client

服务端

安装插件

org.springframework.boot
spring-boot-maven-plugin
com.spotify
docker-maven-plugin
0.4.13
${docker.image.prefix}/${project.artifactId}
src/main/docker
/
${project.build.directory}
${project.build.finalName}.jar

docker.image.prefix是定义的变量

UTF-8
UTF-8
1.8
Edgware.SR2
fymod

imageName指定了镜像的名字,本例为 springcloud-eureka-server

dockerDirectory指定 Dockerfile 的位置
resources是指那些需要和 Dockerfile 放在一起,在构建镜像时使用的文件,一般应用 jar 包需要纳入。
修改application.yml

server:  port: 8761eureka:  instance:    prefer-ip-address: true  client:    registerWithEureka: false    fetchRegistry: false

新建Dockerfile

在src/main/docker文件夹下新建文件Dockerfile,内容:

FROM frolvlad/alpine-oraclejdk8:slimVOLUME /tmpADD springcloud-eureka-server-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]EXPOSE 8761

构建镜像

cd进入到pom.xml所在目录

mvn cleanmvn package docker:build

客户端

安装插件

org.springframework.boot
spring-boot-maven-plugin
com.spotify
docker-maven-plugin
0.4.13
${docker.image.prefix}/${project.artifactId}
src/main/docker
/
${project.build.directory}
${project.build.finalName}.jar

docker.image.prefix是定义的变量

UTF-8
UTF-8
1.8
Edgware.SR2
fymod

imageName指定了镜像的名字,本例为 fymod/springcloud-eureka-client

dockerDirectory指定 Dockerfile 的位置
resources是指那些需要和 Dockerfile 放在一起,在构建镜像时使用的文件,一般应用 jar 包需要纳入。

修改application.yml

192.168.1.7是eureka-server所在服务ip地址。

eureka:  client:    serviceUrl:      defaultZone: http://192.168.1.7:8761/eureka/server:  port: 8762spring:  application:    name: service-1

新建Dockerfile

在src/main/docker文件夹下新建文件Dockerfile,内容:

FROM frolvlad/alpine-oraclejdk8:slimVOLUME /tmpADD springcloud-eureka-server-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

构建镜像

cd进入到pom.xml所在目录

mvn cleanmvn package docker:build

运行

docker run -p 8761:8761 -t fymod/springcloud-eureka-serverdocker run -p 8762:8762 -t fymod/springcloud-eureka-client

查看

docker-compose启动镜像

上一步分别启动的两个镜像,本步骤介绍如何使用一个配置文件启动项目。
新建一个docker-compose.yml

version: '3'services:  springcloud-eureka-server:    image: fymod/springcloud-eureka-server    restart: always    ports:      - 8761:8761  service-1:    image: fymod/springcloud-eureka-client    restart: always    ports:      - 8762:8762

image是镜像的名字。

cd进入yml文件所在目录,运行

docker-compose up

docker-compose编译并启动镜像

前面介绍的镜像生成是通过mvn package docker:build,其实也可以通过docker-compose生成。
移动Dockerfile位置到项目的根目录下,修改ADD行对应的相对路径位置
springcloud-eureka-server的Dockerfile

FROM frolvlad/alpine-oraclejdk8:slimVOLUME /tmpADD ./target/springcloud-eureka-server-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]EXPOSE 8761

springcloud-eureka-client的Dockerfile

FROM frolvlad/alpine-oraclejdk8:slimVOLUME /tmpADD ./target/springcloud-eureka-client-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

新建docker-build.yml,放到两个项目根目录对应的文件夹下

version: '3'services:  springcloud-eureka-server:    build: springcloud-eureka-server    ports:      - 8761:8761  service-1:    build: springcloud-eureka-client    ports:      - 8762:8762

构建镜像并启动

docker-compose -f docker-compose.yml -f docker-build.yml up

二、docker打包Springboot项目

pom.xml新增docker配置

com.spotify
docker-maven-plugin
0.4.3
${docker.image.prefix}/${project.artifactId}
src/main/docker
/
${project.build.directory}
${project.build.finalName}.jar

imageName镜像名称

dockerDirectory Dockerfile位置
resources 指那些需要和 Dockerfile 放在一起,在构建镜像时使用的文件,一般应用 jar 包需要纳入。本例,只需一个 jar 文件
Dockerfile定义 /src/main/docker/Dockerfile

FROM frolvlad/alpine-oraclejdk8:slimVOLUME /tmpADD docker-spring-boot-1.0.0.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

构建dockerImage

项目根路径下执行mvn package docker:build

运行docker

docker run -p 8080:8080 -t kitesweet/pan-search-springboot

打包上传与账号注册

登陆

docker login

上传

docker push kitesweet/pan-search-springboot

拉取镜像

docker pull kitesweet/pan-search-springboot

《参考: 》

《参考: 》

转载地址:http://ooipn.baihongyu.com/

你可能感兴趣的文章
关于web系统整体优化提速总结
查看>>
分布式文件系统 - fastDFS
查看>>
BUAA OO 2019 第一单元作业总结
查看>>
格网编码查询方案在项目运用上的进一步探索
查看>>
BUAA-OO-2019 第三单元总结
查看>>
Matlab策略模式
查看>>
架构整洁之道
查看>>
支付渠道路由系统进化史
查看>>
行为型模式:解释器模式
查看>>
深入理解设计模式(22):享元模式
查看>>
spring boot
查看>>
Angular框架
查看>>
行为型模式:模板方法
查看>>
spring cloud之Feign的使用
查看>>
Codeforces Round #617 (Div. 3) String Coloring(E1.E2)
查看>>
LeetCode刷题 --杂篇 --数组,链表,栈,队列
查看>>
840. 模拟哈希表(模板)
查看>>
《算法》笔记 17 - 数据压缩
查看>>
Qt Installer Framework翻译(5-2)
查看>>
Java+Selenium+Testng自动化测试学习(三)— 断言
查看>>