我在我的start.sh文件下面的命令:
#!/bin/bash
cd /opt/app
../node_modules/.bin/nodemon --inspect=0.0.0.0:9229 & swagger project edit -s -p 81 --host 0.0.0.0
我希望在容器长大执行。应该是什么在Dockerfile相应CMD
语法?
你可以称之为start.sh与CMD。例如。:
FROM ubuntu:latest
RUN mkdir -p /src/app
WORKDIR /src/app
COPY . .
CMD ["/bin/bash", "/src/app/start.sh"]
通常,如果你正在运行两个完全不同的服务器上,它只是为便于在两个不同的容器中运行它们。
docker run ... -p 9229:9229 -d imagename \
npm run nodemon --inspect=0.0.0.0:9229
docker run ... -p 9281:81 -d imagename \
swagger project edit -s -p 81 --host 0.0.0.0
如果nodemon
死了不管是什么原因,在你的shell脚本例子,码头工人根本不会注意到。在另一面,如果swagger
死了,它会采取nodemon
它。如果你运行两个不同的容器中,可以分别看到的两件事情docker logs
,你可以指定一个--restart
政策是否可以帮助你。