从Spring Boot Jar构buildDocker镜像

我正在尝试使用弹簧启动胖子jar来启动和运行Docker的教程。 我已经安装了所有东西,可以运行Docker Hub的Hello World示例。

我已经使用Maven创build了fat jar,名为predictive-text-tree-0.0.1-SNAPSHOT.jar并使用下面的代码作为我的dokerfile.docker:

 FROM java:8 MAINTAINER ltocode EXPOSE 8080 ADD predictive-text-tree-0.0.1-SNAPSHOT.jar /data/predictive-text-tree-0.0.1-SNAPSHOT.jar CMD java -jar /data/textpredict.jar 

我有服务器上的jar和docker文件,当我运行docker build命令时,我得到以下内容:

〜/ build#docker build -t predictive-text-tree-0.0.1-SNAPSHOT.jar

无效参数“predictive-text-tree-0.0.1-SNAPSHOT.jar”for t:分析引用时出错:“predictive-text-tree-0.0.1-SNAPSHOT.jar”不是有效的repository / tag请参阅docker build – 帮帮我'。

我如何从一个胖jar子build立docker图像?

您在构build命令中提供了不正确的参数。 -t参数用于标记生成的图像。 这意味着,应该跟一个图像名称,而不是一个jar文件。 您可以在docker build文档中find更多的细节。

为了更优雅的方式:在过去, docker-maven-plugin对我来说是最好的,预览在这里:

 <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>VERSION GOES HERE</version> <configuration> <imageName>example</imageName> <baseImage>java:8</baseImage> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"] </entryPoint> <!-- copy the service's jar file from target into the root directory of the image --> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> 

除了能够在项目中正确构build它,还可以将映像直接推送到docker注册中心:

mvn ... docker:build -DpushImageTags -DdockerImageTag=latest -DdockerImageTag=tag