本文共 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.ymlserver: 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.ymlversion: '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的DockerfileFROM 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/DockerfileFROM 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/