这里主要用到spring-boot开箱即用,能生成一个独立运行的程序,及maven的插件docker-maven-plugin
这里主要步骤
-
<李>构建一个简单的springboot项目李>
<李>添加docker-maven-plugin及写dockerfile李>
<李>实践生成码头工人镜像李>
2.0以弹簧引导为例
在pom.xml文件中增加祭台布依赖
& lt; parent> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-parent & lt; version> 2.0.0.RELEASE & lt;/parent> >之前增加web和测试依赖
& lt; dependencies> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-web & lt;/dependency> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-test & lt; scope> test & lt;/dependency> & lt;/dependencies> >之前创建一个控制器,在其中有一个指数()方法,访问时返回:你好码头工人!
@RestController 公共类控制器{ @RequestMapping(“/? 公共字符串索引(){ 返回“你好码头工人!”; } } >之前启动类
@SpringBootApplication 公共类应用程序{ 公共静态void main (String [] args) { SpringApplication.run (Application.class, args); } } >之前添加完毕后启动项目,启动成功后浏览器放问:http://localhost: 8080/页面返回:你好码头工人!春天,说明引导项目配置正常。
在pom.xml的属性节点中添加码头工人镜像前缀
& lt; properties> & lt; docker.image.prefix> springboot & lt;/properties> >之前在插件中添加码头工人构建插件
& lt; build> & lt; plugins> & lt; plugin> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-maven-plugin & lt;/plugin> & lt; plugin> & lt; groupId> com.spotify & lt; artifactId> docker-maven-plugin & lt; version> 1.0.0 & lt; configuration> & lt; imageName> $ {docker.image.prefix}/{project.artifactId} & lt;美元/imageName> & lt; dockerDirectory> src/main/docker & lt; resources> & lt; resource> & lt; targetPath>/& lt;/targetPath> & lt; directory> $ {project.build.directory} & lt;/directory> & lt; include> $ {project.build.finalNmae} .jar & lt;/resource> & lt;/resources> & lt;/configuration> & lt;/plugin> & lt;/plugins> & lt;/build> >之前
在目录src/main/码头工人下创建Dockerfile文件,Dockerfile文件用来说明如何来构建镜像。
从openjdk: 8-jdk-alpine 体积/tmp 添加spring -引导-码头工人- 1.0。jar app.jar 入口点(“java”、“-Djava.security.egd=文件:/dev/?urandom”,“瓶”,“/app.jar”) 揭露8080年这个Dockerfile文件很简单,构建Jdk基础环境,添加弹簧引导Jar到镜像中,简单的说明一下:
-
<李>,表示使用Jdk8环境为基础镜像,如果镜像不是本地的会从DockerHub进行下载李>
<李>体积,体积指向了一个/tmp的目录,由于弹簧引导使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/码头工人目录下创建一个临时文件并把它链接到容器中的/tmp目录李>
<李>添加、拷贝文件并且重命名李>
<李>入口点,为了缩短Tomcat的启动时间,添加java.security。还的系统属性指向/dev/urandom作为入口点李>
<李>公开指明8080端口提供服务李>
需要有一个码头工人环境来打包弹簧启动项目。
需要三个依赖
-
<李> jdk环境李>
<李> maven李>
<李>码头工人环境李>
运行<代码> java - version, mvn - version,码头工人版本代码>这些命令不报错就是环境准备好了。