2017-12-27 46 views
0

"command :"를 사용하여 docker-compose.yaml 파일에서 wait-for-it.sh 스크립트를 실행하려고합니다. 나는 또한 ls 명령을 실행하려고 시도했다. 둘 다 명령을 찾을 수 없었습니다. Howeer, 명령 줄로 가면 두 명령을 모두 실행할 수 있습니다. 여기docker-compose : yaml 파일에서 명령을 실행할 수 없습니다.

는 고정 표시기-compose.yaml 파일입니다

명령은 명령 줄에서 작업 할 때 그냥 고정 표시기-작성 파일이 원인이 될 수 무엇
rabbitmq: 
    container_name: "myapp_rabbitmq" 
    tty: true 
    image: rabbitmq:management 
    ports: 
     - 15672:15672 
     - 15671:15671 
     - 5672:5672 
    volumes: 
     - /rabbitmq/lib:/var/lib/rabbitmq 
     - /rabbitmq/log:/var/log/rabbitmq 
     - /rabbitmq/conf:/etc/rabbitmq/ 
    service1: 
    container_name: "service1" 
    build: 
     context: . 
     dockerfile: ./service1.dockerfile 
    links: 
     - mongo 
     - rabbitmq 
    depends_on: 
     - mongo 
     - rabbitmq 
    command: ["./wait-for-it.sh", "rabbitmq:5672", "-t", "90"] 
    service2: 
    container_name: "service2" 
    build: 
     context: . 
     dockerfile: ./service2.dockerfile 
    links: 
     - mongo 
     - rabbitmq 
    depends_on: 
     - mongo 
     - rabbitmq 
    command: ["./wait-for-it.sh", "rabbitmq:5672", "-t", "90"] 

? 컨테이너를 시작하기 위해 "docker-up up -d"를 사용합니다.

+0

확실하지 않음에 ADD 명령을 사용하여 이미지에이 파일을 추가 할 수 있지만, 당신 참조'./service1.dockerfile' 및' ./service2/dockerfile'이 이상하게 보일 것입니다. 하나의 도커 파일이 경로에 있고, 하나가'.docker' 확장자를 가진 파일입니다. –

+0

그건 오타였습니다. 슬래시는 점이 있어야합니다. – user1790300

+0

v1 작성 파일은 링크와 마찬가지로 사용되지 않습니다. v2 이상으로 업데이트하고 링크 대신 네트워크를 사용하십시오. 당신은 어떤 명령을 실행하고 있습니까? 동일한 이미지로 작성된 컨테이너에서 실행한다는 것은 확실하지 않습니다. – BMitch

답변

1

런타임에 wait-for-it.sh을 찾지 못하면 wait-for-it.sh이 도커 이미지 안에 없다고 생각됩니다.

당신은 당신의 Dockerfile (들) 디렉토리의 모습

ADD wait-for-it.sh /wait-for-it.sh