2016-10-03 133 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