2016-09-23 2 views
2

나는이 게시물에 다음과 같은거야 $ PATH에 찾을 수 없습니다고정 표시기 작성 OCI 런타임 오류, 실행 파일

version: "2" 

services: 

    fluentd: 
    image: fluent/fluentd:latest 
    ports: 
     - "24224:24224" 
    command: start.sh 
    networks: 
     - lognet 

    nginx: 
    image: nginx-pixel 
    ports: 
     - "80:80" 
    logging: 
     driver: fluentd 
    networks: 
     - lognet 

networks: 
    lognet: 
    driver: bridge 
:

http://eric-price.net/blog/centralized-logging-docker-aws-elasticsearch

이 내 고정 표시기 - compose.yml의 모습입니다

start.sh은 yml 파일과 같은 디렉토리에 있습니다. 내가 docker-compose up -d를 실행하면이 내가 무엇을 얻을 수 있습니다 :

ERROR: for fluentd Cannot start service fluentd: oci runtime error: exec: "start.sh": executable file not found in $PATH ERROR: Encountered errors while bringing up the project.

내 고정 표시기-작성 정보 :

docker-compose version 1.8.0, build f3628c7 
docker-py version: 1.9.0 
CPython version: 2.7.9 
OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013 

답변

2

명령은 당신이하지 않는 뽑아 Fluentd에 컨테이너를 사용하는 컨테이너 - 내부에서 실행 그 안에 start.sh 파일이 있어야합니다. 당신도

A. 바인드 이미지

# Dockerfile 
FROM fluent/fluentd:latest 
COPY start.sh /start.sh 

#docker-compose.yml 
    fluentd: 
    build: . 
+0

덕분에 용기

#docker-compose.yml fluentd: image: fluent/fluentd:latest volumes: - ./start.sh:/start.sh command: /start.sh 

또는 B가 구축에 마운트 할 수 있습니다. 나는 이것을 나의 도커로 작성하여 수정했다.'volumes : - ./fluentd/etc :/fluentd/etc' 'command :/fluentd/etc/start.sh' –

+1

그 블로그 게시물을 읽는 것으로 시작했다. sh는 좋은 습관이 아닙니다. Dockerfile에서 gem install을 실행해야 컨테이너를 실행할 때마다 다시 설치할 필요가 없습니다. –