2015-12-31 237 views
0

如何在運行Docker容器後啓動腳本。在Docker容器中運行bash腳本

這裏是我的Dockerfile的一部分:

FROM nodesource/trusty:0.10.30 
RUN mkdir /opt/app/ && cd /opt/app/ 
ADD ./api/package.json /opt/app/package.json 
RUN cd /opt/app/ && npm install 
ADD ./api/src /opt/app/src 
RUN npm -g install pm2 
WORKDIR /opt/app/src 
ADD start.sh start.sh 
RUN chmod 755 /opt/app/src/start.sh 
CMD ./opt/app/src/start.sh 

和start.sh包含:

#!/usr/bin/env bash 
cd /opt/app/src 
node app.js --env=dev: 
pm2 updatePM2 
pm2 startup 
pm2 save 

PS:當我啓動腳本記錄到containerit後的作品完美,但不是要求時它直接來自Dockerfile

回答

0

路徑不是CMD的有效參數。它應該是:

CMD ["./opt/app/src/start.sh"] 
+0

可以指定與路徑的普通字符串。這是「殼」的形式 – Matt

0

您已設置您的WORKDIR/opt/app/src,那麼你正在嘗試使用./運行相對於該位置的腳本。這意味着你正在嘗試運行/opt/app/src/opt/app/src/start.sh

嘗試

CMD /opt/app/src/start.sh 
相關問題