2016-06-22 3 views
1

나는 jetty를 사용하여 실행하고 싶은 자바 웹 애플리케이션 (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 

현재 고정 표시기 이미지가 완벽하게 작동하지만 (이 신선한 자식 클론에서 구축 할 수 없음) 이전에 건축 할 수있는 응용 프로그램이 필요합니다. 예를 들어, 도커 허브 빌드 시스템으로 빌드를 실행할 수 없습니다.

어떤 방법을 선호합니까? 성공적으로 빌드가 완료된 후 이미지를 빌드하거나 도커를 실행하는 동안 maven 프로젝트를 빌드 하시겠습니까?

답변

1

생성하려는 고정 이미지가 프로덕션 용인 것으로 가정합니다.

  • JDK에는
  • 메이븐
  • 귀하의 소스

이들 각각을 : 당신은 전쟁을 구축 소스를 소요하고 이미지를 만드는 경우

, 당신은 포함해야합니다 완전히 쓸모 없으며 이미지에서 많은 공간을 차지합니다.

그래, IMO는 당신의 도커 이미지에만 전쟁을 추가합니다. 당신은 내부에서 빌드하지 않습니다. 나는 당신이 당신 받는다는 과정 내부에 고정 표시기 이미지를 구축하지해야한다고 생각

, 그것은

+0

실제로 일부 높은 수준의 스크립트 (또는 젠킨스 파이프 라인)을 자동화 할 수있는 두 개의 별도의 프로세스, 좋은 점입니다. 감사. 이제 두 번째 질문이 생깁니다.이 파이프 라인을 어떻게 통합해야합니까? 스냅 샷 이미지 작성을 담당하는 travis 빌드가 있다고 가정 해 봅시다. 두 번째 빌드 (어쩌면 수동)를 구현하려면 어떻게해야하고 트리거 될 때 릴리스를 만들고 도커 이미지를 만들 수 있습니까? Docker HUB는 이전에 데이터를 작성해야하기 때문에 통합 할 수 없습니다. 어떠한 제안? 트래비스가 어쩌면? 확실하지 않습니다 ... –

+0

docker 허브를 사용할 수 있습니다. 예를 들어 sonatype : http://central.sonatype.org/pages/ossrh-guide와 같이 Maven 저장소에 아티팩트를 게시하기 만하면됩니다. html 그런 식으로 dockerfile에서해야 할 일은'http : // theurlofyourjaronsonatype'을 추가하고 항아리/전쟁을 배포 할 때마다 docker가 빌드되도록 트리거합니다. –