我怎样写在Dockerfile下CMD标签的多个命令?

问题描述 投票:0回答:2

我在我的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语法?

node.js docker docker-compose
2个回答
1
投票

你可以称之为start.sh与CMD。例如。:

FROM ubuntu:latest

RUN mkdir -p /src/app
WORKDIR /src/app
COPY . .

CMD ["/bin/bash", "/src/app/start.sh"]

0
投票

通常,如果你正在运行两个完全不同的服务器上,它只是为便于在两个不同的容器中运行它们。

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政策是否可以帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.