2016-06-22 5 views
1

私はjettyを使用して実行したいJava Webアプリケーション(https://github.com/kermitt2/grobid)を「ドッキングする」ために取り組んでいます。埠頭のドッカー画像を作成する - いつビルドする必要がありますか?

ここDockerfile:

FROM jetty:9.3-jre8 
ADD ./grobid-home/target/grobid-home-0.4.1-SNAPSHOT.zip /opt 

RUN unzip /opt/grobid-home-0.4.1-SNAPSHOT.zip -d /opt && \ 
    rm /opt/grobid-home-0.4.1-SNAPSHOT.zip && \ 
    apt-get update && apt-get -y --no-install-recommends install libxml2 

COPY ./grobid-service/target/grobid-service-0.4.1-SNAPSHOT.war \ 
    /var/lib/jetty/webapps/ROOT.war 

は、現在のドッキングウィンドウの画像は完璧に動作しますが、それは(それが新鮮なgitのクローンから構築することはできません)前に建設されるアプリケーションが必要です。 たとえば、私はドッカーのHUBビルドシステムでビルドを実行できませんでした。

どのような方法が優先されますか?ビルドが正常に終了した後、イメージをビルドしている間にmavenプロジェクトをビルドするか、ドッカーを実行しますか?

答えて

1

私が作成しているドッカー画像はプロダクション用であると仮定します。

  • JDK
  • Mavenの
  • あなたの源

これらのそれぞれを:あなたは戦争を構築ソースを取り込み、画像を作成する場合

、あなたは埋め込む必要があります完全に役に立たず、あなたのイメージには何もない空間がたくさんあります。

IMOはあなたのドッカー画像に戦争を加えるだけです。あなたはそこからビルドしません。私はあなたがあなたのMavenのプロセス内で、あなたのドッキングウィンドウのイメージを構築するべきではないと思います

は、それが

+0

実際にあなたには、いくつかのより高いレベルのスクリプト(またはジェンキンスパイプライン)を自動化することができる2つの独立したプロセス、良い点です。ありがとう。 もう1つ質問があります。このパイプラインをどのように統合する必要がありますか? スナップショットイメージの作成を担当するtravisビルドがあるとします.2番目のビルドを実装するにはどうすればよいでしょうか?マニュアルを作成するにはどうしたらいいですか? Docker HUBは、以前に構築されたデータを必要とするため、スイート化できません。なにか提案を?トラビスかもしれない?私は確信していません... –

+0

ドッカーハブを使用することができます。例えば、sonatype:http://central.sonatype.org/pages/ossrh-guideのように、あなたの成果物をMavenリポジトリに公開するだけです。 htmlそのようにすれば、あなたのdockerfileで行うことは 'ADD http:// theurlofyourjaronsonatype'です。あなたのjar/warを展開するたびにtravisがドッカーをビルドさせるようにします –

関連する問題