2017-09-16 10 views
0

私は変換しようとしているjava/hibernate/jpa/mavenプロジェクトを持っています(プロジェクトから作成された.jarファイル)。ドッカー画像。 Spotifyプラグインも使用しています。生成されたjarファイルの名前をMaven pom.xmlからDockerfileに渡します。

以下

、以下ドッカーコマンドの

ADD <full_path_of_generated_file>.jar app.jar 

full_path_of_generated_file値を(Mavenの側)pom.xmlファイルから生成されます。この情報は、Dockerがイメージを適切に生成するために必要です。

生成されたファイルの名前をDockerfileにどのように取得できますか? Mavenのpom.xmlファイルの

TIA

プラグインエリアの下

<plugins> 
<plugin> 
     <groupId>com.spotify</groupId> 
     <artifactId>docker-maven-plugin</artifactId> 

     <configuration> 
      <imageName>apx/${project.artifactId}</imageName> 
      <dockerDirectory>${project.basedir}/docker</dockerDirectory> 
     </configuration> 
    </plugin> 

    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <!-- <version>2.6</version> --> 
     <executions> 
      <execution> 
       <id>analyze</id> 
       <phase>package</phase> 
       <configuration> 
        <failBuild>true</failBuild> 
        <ignoreDirect>false</ignoreDirect> 
       </configuration> 
      </execution> 
     </executions> 
     <configuration> 

      <finalName>${project.artifactId}</finalName> 
      <archive> 
       <manifest> 
        <mainClass>ccinfw.MainApplication</mainClass> 
       </manifest> 
      </archive> 
     </configuration> 
    </plugin> 
    <plugin> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-maven-plugin</artifactId> 
    </plugin> 
</plugins> 

[... snip ...] 

<artifactId>ccinf</artifactId> 

Dockerfileのコピーが

FROM java:8 
VOLUME /tmp 
ADD <full_path_of_generated_file>.jar app.jar 
RUN bash -c 'touch /app.jar' 
EXPOSE 8080 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 
+0

の内部Iは、ポンポンの購入時の梱包材は "瓶" であるか、またはあなたがパッケージタグを与えていないと仮定しますか? – khmarbaise

+0

私はpom.xmlファイルの一部のみを組み込みました。はい.Dockerイメージで使用する.jarファイルが作成されています。 –

+0

私が考えることができる最も簡単なものは、 ' WhatEver.jar ...'と 'ADD target/WhatEver.jar app.jar'を変更しますか? – khmarbaise

答えて

0

を使用している私のために働いた何だったの最終的な成果物の名前(例:something_or_other-1.2.3-SNAPSHOT.jar)を引数として渡します(ARG)をDockerfileに追加します。 pom.xml内

<plugin> 
     ... 
     <configuration> 
     ... 
      <buildArgs> 
       <JAR_FILE>${project.build.finalName}.jar</JAR_FILE> 
      </buildArgs> 
     </configuration> 
    </plugin> 

その後、Dockerfile

# insert other Dockerfile stuff here and then... 

    ARG JAR_FILE 
    ADD target/${JAR_FILE} app.jar 
    ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"] 
関連する問題