2016-12-18 5 views
3

Gatling (로드 테스트 도구) + NodeJS를 사용하여 간단한 이미지/컨테이너를 설정하기 위해 Docker (버전 1.12.2, 빌드 bb80604)를 사용하고 있습니다. 그래서 this Docker/Gatling base image을 뽑아 내 자신의 Dockerfile을 작성하여 NodeJS를 설치했습니다.Docker - 기본 이미지에서 ENTRYPOINT 덮어 쓰기 또는 제거

그러나 위의 Docker/Gatling 기본 이미지에는 ENTRYPOINT가 이미 정의되어있어 바로 Gatling을 호출 한 다음 자동으로 컨테이너를 종료합니다. 그것은 다음과 같습니다

ENTRYPOINT ["gatling.sh"] 

내가 달성하기 위해 노력하고있어입니다 : 내가 (테스트 결과를 구문 분석하는 내 자신의 NodeJS 스크립트를) 두 번째 명령을 실행하려면 그러나 내가 지금까지 해결책을 찾을 수 없습니다 (ENTRYPOINT와 CMD의 다른 조합을 무시하려했지만 성공하지 못했습니다.) 여기

FROM denvazh/gatling:2.2.3 

RUN apk update \ 
&& apk add -U bash \ 
&& apk add nodejs=6.7.0-r0 

COPY simulations /opt/gatling/user-files/simulations 
COPY trigger-test-and-parser.sh /opt/gatling/ 

RUN chmod +x /opt/gatling/trigger-test-and-parser.sh 

ENTRYPOINT ["bash", "/opt/gatling/trigger-test-and-parser.sh"] 

내가 내 Dockerfile에 따라 내 이미지를 구축하기 위해 사용하고 명령입니다 : : 여기

내 현재 Dockerfile의 모습을 어떻게

docker build --no-cache -t gatling-nodejs:v8 . 

는 그리고 이것은 명령 I입니다 내 컨테이너를 실행하는 데 사용 :

그리고 이것은 내가 원했던 쉘 스크립트 (trigger-test-and-parser.sh)입니다. 컨테이너 시작되면 실행 (이 개틀링를 실행 한 후 내 NodeJS 파서 실행한다) : 내 컨테이너 시작되면 두 명령을 실행할 수 있도록

gatling.sh -s MicroserviceHPSPubSubRatePerfTest.scala 
node publish-rate-to-team-city.js 

어떤 아이디어 나 개조하면 되겠 어?

고맙습니다.

+1

당신의 '고정 표시기의 run'은'개틀링-nodejs로 끝나는 : 향후 참조를 위해

, 여기 내 Dockerfile에 추가 한 두 줄입니다 v7'가 오타인가? 나는 그것이 7 대신 8로 끝날 것이라고 생각했다. – user2915097

+0

오타입니다. 죄송합니다. 방금 업데이트되었습니다! :) – user2253130

+0

당신의 gatlin.sh에서 시도하십시오 cmd1; cmd2; 잠 무한대 ' – user2915097

답변

5

세트 ENTRYPOINT-/usr/bin/env. 그런 다음 CMD을 원하는대로 실행하십시오.

+0

위대한! 그것은 나를 위해 잘 일했다! 고마워요! – user2253130

0

위의 그레이엄의 아이디어는 꽤 잘 작동했습니다. 다시 한 번 감사드립니다!

ENTRYPOINT ["/usr/bin/env"] 

CMD ["bash", "/opt/gatling/trigger-test-and-parse-result.sh"]