maven插件打包可执行jar包到docker

来源:互联网 发布:c语言中char是什么意思 编辑:程序博客网 时间:2024/05/29 16:43

pom.xml文件添加docker插件

<build>    <plugins>        <!-- docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin -->        <plugin>            <groupId>com.spotify</groupId>            <artifactId>docker-maven-plugin</artifactId>            <version>0.4.12</version>            <configuration>                <imageName>useronline-jar</imageName>                <!-- 指定Dockerfile所在的路径 -->                <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>                <!-- 注意imageName一定要是符合正则[a-z0-9-_.]的,否则构建不会成功 -->                <!-- 详见:https://github.com/spotify/docker-maven-plugin    Invalid repository name ... only [a-z0-9-_.] are allowed-->                <!--<imageName>useronline-dockerfile</imageName>-->                <!--<baseImage>java</baseImage>-->                <!--<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>-->                <resources>                    <resource>                        <targetPath>/</targetPath>                        <directory>${project.build.directory}</directory>                        <include>${project.build.finalName}.jar</include>                    </resource>                </resources>            </configuration>        </plugin>        <plugin>            <groupId>org.apache.maven.plugins</groupId>            <artifactId>maven-shade-plugin</artifactId>            <version>2.4.3</version>            <executions>                <execution>                    <phase>package</phase>                    <goals>                        <goal>shade</goal>                    </goals>                    <configuration>                        <transformers>                            <transformer                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">                                    <mainClass>jinju.useranalyse.kafka.KafkaTest</mainClass>                                <!--<manifestEntries>-->                                    <!--<Main-Class>jinju.useranalyse.kafka.KafkaTest</Main-Class>-->                                    <!--<Build-Number>1.0.2</Build-Number>-->                                <!--</manifestEntries>-->                            </transformer>                            <transformer                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">                                <resource>META-INF/spring.handlers</resource>                            </transformer>                            <transformer                                    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">                                <resource>META-INF/spring.schemas</resource>                            </transformer>                        </transformers>                        <shadedArtifactAttached>true</shadedArtifactAttached>                        <shadedClassifierName>executable</shadedClassifierName>                    </configuration>                </execution>            </executions>        </plugin>    </plugins>    <resources>        <resource>            <directory>src/main/resources</directory>        </resource>        <resource>            <directory>src/main/java</directory>            <includes>                <include>**/*.xml</include>            </includes>            <filtering>false</filtering>        </resource>    </resources></build>
docker-maven-plugin是docker打包插件
maven-shade-plugin是可执行jar打包插件
项目目录结构如下:
如果直接用docker插件打包会出现找不到主类
将package打包后的文件复制到docker目录后然后在Dockerfile中指定对应的文件即可。
FROM javaADD   useronline-1.0-SNAPSHOT.jar app.jarADD  resources/   resources/ENTRYPOINT ["java", "-jar", "/app.jar"]

原创粉丝点击