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
posted @ 2019-11-27 10:01  张占岭  阅读(876)  评论(0编辑  收藏  举报