2017-05-24 48 views
0

젠킨스 파이프 라인에서 도커 컨테이너를 실행하려고합니다.젠킨스 도커 - 컨테이너 실행, 쉘 스크립트 실행 등

#!/bin/bash 
docker cp RecordedSimulation.scala denvazh/gatling:/RecordedSimulation.scala 
docker run -it -m denvazh/gatling /bin/bash 
ls 
./gatling.sh 

ls 명령은 단지 시험이 있지만, 실행 때이 파일을 나열 :이 가지고있는 test-gatling.sh에서

stage('test') { 
steps { 
    script { 
    parallel (
     "gatling" : { 
      sh 'bash ./test-gatling.sh' 
    }, 
     "python" : { 
      sh 'bash ./test-python.sh' 
    }) 
       } 
     } 
     } 

:

나는 내 Jenkinsfile에 다음이 폴더 내컨테이너 내부 파일 대신 내 github 저장소. 왜 그런가요? 나는 그 안에서 명령이 실행될 수 있도록 docker run -it [...] 명령이 컨테이너를 열 것이라고 생각 했습니까?

================

또한

, 나는 용기를 실행 않고 그냥 그 안에 어떤 명령을 실행하지 않고, 실행 어떻게? (젠킨스 파이프 라인에서)

실행하고 싶습니다 : docker run -d -p 8080:8080 -t [my_container] 포트 8080에 액세스하십시오. 어떻게해야합니까? 사람이 동일하거나 유사한 문제가있는 경우

+0

문제는 bash 스크립트에 있습니다. 당신의 도커에서 "/ bin/bash"명령 만 실행됩니다. 아래의 행은 방금 호출 한 bin/bash에서 자동으로 실행되지 않습니다. –

+0

나는 종종 Jenkinsfile에서 여러개의'docker-compose run ..... some command ...'를 가지고있다. –

답변

0

, 여기에 대한 답변은 다음과 같습니다

  1. 사용 docker exec [name of container] 명령, 그리고 할 수 /bin/bash -c "[command]"

  2. 를 추가, 컨테이너 내부에 터미널 명령을 실행할 두 번째 컨테이너에서 모든 포트에서 실행중인 컨테이너/앱에 액세스하십시오. 두 번째 컨테이너를 시작할 때 --net=host 매개 변수로 실행하십시오.