Docker 컨테이너에서 백그라운드 작업이 실행되는 스크립트를 실행할 때 기대했던 리턴 코드가 표시되지 않습니다. 당신이 반환 코드 1로 기대백그라운드 명령의 Docker 반환 코드
#!/bin/bash
set -e
ls/&
exit 1
그래서 docker run jakob/test cat /start_script.sh
docker build -t jakob/test .
을 실행 :
FROM ubuntu:latest
MAINTAINER Jakob H. Thomsen ([email protected])
RUN echo "#!/bin/bash\nset -e\n\nls/&\nexit 1" > /start_script.sh
RUN chmod +x /start_script.sh
그것은 용기 내부의 다음 파일 /start_script.sh
를 만듭니다
이 예를 들어 고정 표시기 파일은 문제를 강조 , 때문에 exit 1
. 0이 아니며 ls/&
으로 인해 발생합니다 (명령을 제거하면 예상 리턴 코드 1이됩니다).
내 질문에 ls/&
이 exit 1
명령의 반환 코드를 무시하는 이유는 무엇입니까? exit 1
을 백그라운드에서 실행하려고 시도했지만 반환 코드가 변경되지 않습니다 ...
설치 프로그램을 사용하여 Ruby 사양을 실행하고 있으므로 실제로 마지막 코드의 반환 코드에 의존합니다. Docker가 마지막 명령의 리턴 코드를 리턴하도록하기 위해 할 수있는 일이 있습니까?
감사합니다.이 '잘못된'반환 코드의 정확한 문제점을 정확히 찾아내는 데 많은 시간을 할애 해 주시면 감사하겠습니다.