2016-10-03 117 views
1

我正在尝试使用弹簧启动胖子jar启动并运行Docker的教程。我已经安装了所有东西,并且可以运行Docker Hub的Hello World示例。从Spring Boot Jar构建Docker镜像

我已经创建使用Maven称为predictive-text-tree-0.0.1-SNAPSHOT.jar并使用以下作为我dokerfile.docker我胖的jar:

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 

我有罐子和服务器上的文件泊坞窗,当我运行的泊坞窗建立命令我得到以下几点:

〜/编译#搬运工建立-t预测文本树-0.0.1-SNAPSHOT.jar

无效的参数“预测文本树0.0.1 -SNAPSHOT.jar” for t:解析引用时出错:“predictive-text-tree-0.0.1-SNAPSHOT.jar”不是有效的存储库/标记 请参阅“docker build --help”。

如何从胖罐中构建docker镜像?

回答

2

你在你的build命令给出不正确的参数。用于标记生成图像的参数-t。这意味着,-t应该跟一个图像名称,但不是一个jar文件。你可以在docker build document找到更多的细节。

0

对于一个更优雅的方式:在过去,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> 

除了能力正确使用你的项目,建立它的也有可能推直接在图像泊坞窗注册表:

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