如何在运行docker容器后启动脚本。
这是我的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 :(得分:0)
路径不是CMD的有效参数。它应该是:
CMD ["./opt/app/src/start.sh"]
答案 1 :(得分:0)
您已将WORKDIR
设置为/opt/app/src
,然后尝试使用./
运行相对于该位置的脚本。这意味着您正在尝试运行/opt/app/src/opt/app/src/start.sh
尝试
CMD /opt/app/src/start.sh