2016-11-10 2 views
0

도커가 빌드 단계에서 java/undertow 응용 프로그램을 시작해야하며 실행 단계에서 사용할 수 있어야합니다. 그러나 java 프로세스 시작 후 java 서버 시작과 관련된 컨테이너 변경 사항은 유지되지 않습니다.도커 컨테이너가 백그라운드에서 Java를 시작하지 않음

이 단계에서 변경된 사항은 이미지에 영향을 미치지 않습니다.

내 고정 표시기 파일의 마지막 명령은 내가이 컨테이너를 실행할 때 그 출력이 server.log에 파일 확인 성공적으로

StartServices  - Services Started 

시작 서버 그러나 경우에 존재 볼 수 있습니다

RUN java -jar /svc/app/svc-0.0.1-SNAPSHOT.jar $2>server.log & sleep 5 

입니다 I 실행중인 서비스가없는 컨테이너를 실행하십시오. 나는 그것을 수동으로 시작할 수 있지만 그것을하고 싶지 않다. 컨테이너가 올라 왔을 때 내 서버를 올려 놓고 싶습니다. 나는이 5 초 동안 대기하지 않는 경우

공지 사항

& sleep 5 

가없이 모든 로그가 생성됩니다. Docker는 Java 응용 프로그램을 시작하지 않고 즉시이 단계를 포기합니다.

"잠자기 5"조차도 내 응용 프로그램을 시작할 수있게 해줍니다. 도커는 여전히 이미지의 변경 사항을 무시하고 적용하지 않습니다.

"도커 실행"할 때 내 응용 프로그램이 실행되고 있지 않습니다. 여기

가 Dockerfile입니다 :

FROM anapsix/alpine-java 
ENV TC_BASE=/opt/tc_base 
ENV APP_BASE=$TC_BASE/svc 
ENV PATH=.:$PATH 


RUN apk update && apk add unzip 


COPY files/build/lib/svc/target/svc-0.0.1-SNAPSHOT-bin.zip $APP_BASE/ 
COPY files/build/lib/api/src/main/resources/api.properties $TC_BASE/conf/api/ 
COPY files/build/lib/svc/src/main/resources/svc.properties $TC_BASE/conf/svc/ 
COPY files/build/lib/svc/src/main/resources/logback.xml $TC_BASE/conf/svc/ 

RUN cd $APP_BASE ; unzip -q svc-0.0.1-SNAPSHOT-bin.zip ; rm svc-0.0.1-SNAPSHOT-bin.zip ; mv svc-0.0.1-SNAPSHOT/* . ; rm -rf svc-0.0.1-SNAPSHOT 

EXPOSE 7009 

RUN java -jar $TC_BASE/svc/app/svc-0.0.1-SNAPSHOT.jar $2>server.log & sleep 5 
+0

Docker는 대기중인 프로세스가 없으면 항상 컨테이너를 중지합니다. 'tail -f server.log' –

+0

우리는 건물 이미지에 대해 이야기하고 있습니다. 이 단계에서는 서버 로그에 관심이없는 사람이 있습니다. tail -f server.log를 수행하면 빌드 프로세스가 종료되지 않습니다. Java 프로세스는 이미지 설정의 일부로 백그라운드에서 실행되어야합니다. –

+3

컨테이너가 실행될 때 실행할 항목이 필요하면'ENTRYPOINT' 또는'CMD' (또는 조합)에 넣어야합니다. 그리고 그것이 여러 가지를 조정하고 시작한다면 엔트리 포인트 스크립트가 필요할 수도 있습니다. 이 모든 것은 약간 지저분 해 보입니다. 왜 컨테이너에서 여러 가지를 실행해야합니까? – johnharris85

답변

1

음, 엔트리 포인트는 실행되지해야합니다. Entrypoint는 컨테이너가 시작될 때 호출되며 필요한 항목입니다. RUN은 빌드하는 동안 실행되지만 파일 시스템에만 영향을 미칩니다. Docker 이미지에는 응용 프로그램의 실행 상태가 포함되어 있지 않으므로 이미지를 만들 때 시작된 응용 프로그램에 대한 정보가 없습니다. 응용 프로그램을 시작하려면 ENTRYPOINT로 설정해야합니다.

관련 문제