springboot~maven集成开发里的docker构建
统一设计
maven很好的把项目整合在一起,在部署时,每个项目可以有自己的Dockerfile,在构建后把对应的jar包复制到Dockerfile的同级目录,使用使用统一的打包镜像和容器启动方法去执行就可以了。
需要大maven根项目添加插件
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<configuration>
<tasks>
<!-- 把jar包复制到/src/main/docker文件夹 -->
<copy todir="${project.basedir}/src/main/docker">
<fileset dir="${project.build.directory}">
<include name="${project.artifactId}-${project.version}.jar"/>
</fileset>
</copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--加入下面两项配置,把依赖包打到jar里-->
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
Dockerfile的统一内容
在src/main/docker目录下添加这个文件
FROM fabric8/java-jboss-openjdk8-jdk:1.4
COPY 你的jar名称.jar /deployments/app.jar
ENV URL="http://127.0.0.1:18082/manage/status"
EXPOSE 8082 18082
生成jar包
在根项目里的lifecycle->install,然后生成各个项目的jar文件,把对应的jar复制到对应的目录里
生成镜像
docker build ./src/main/docker -t maven-spring-b