1
我沒有得到我期望的返回代碼,在Docker容器內執行腳本並在其中運行後臺任務。來自後臺命令的Docker返回代碼
這個例子泊塢窗文件突出問題:
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
容器內:
#!/bin/bash
set -e
ls/&
exit 1
所以運行docker build -t jakob/test .
和docker run jakob/test cat /start_script.sh
你所期望的返回碼爲1 ,因爲exit 1
。它不是,它是0,它以某種方式因爲ls/&
(如果您刪除該命令,您將得到預期的返回碼1)。
所以我的問題是爲什麼ls/&
覆蓋exit 1
命令的返回碼?我試圖讓exit 1
在後臺運行,但它不會更改返回代碼...
由於我使用安裝程序來運行Ruby規範,我真的依賴於最後一個的返回代碼命令,那麼我能做些什麼來讓Docker返回最後一條命令的返回碼?
謝謝,我希望你能幫上忙,因爲它讓我花了很長時間來查明這些「錯誤」返回碼的確切問題。