springboot~maven集成開發里的(de)docker構建
統一設計
maven很好(hao)的把項目整合在一(yi)起,在部(bu)署時,每個項目可(ke)以(yi)有自己的Dockerfile,在構建后把對應的jar包復制到Dockerfile的同級(ji)目錄,使(shi)用(yong)使(shi)用(yong)統一(yi)的打包鏡像和容器(qi)啟動方法去執行就可(ke)以(yi)了。
需要大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目錄下添加(jia)這個文件(jian)
FROM fabric8/java-jboss-openjdk8-jdk:1.4
COPY 你的jar名稱.jar /deployments/app.jar
ENV URL="//127.0.0.1:18082/manage/status"
EXPOSE 8082 18082
生成jar包
在根(gen)項目里的lifecycle->install,然后(hou)生(sheng)成各個項目的jar文件(jian),把對應(ying)的jar復制到對應(ying)的目錄(lu)里
生成鏡像
docker build ./src/main/docker -t maven-spring-b