两个办法,一个是CMD不用中括号框起来,将命令用"&&"符号链接:
# 用nohup框起来,不然npm start执行了之后不会执行后面的
CMD nohup sh -c 'npm start && node ./server/server.js'
另一个方法是不用CMD,用ENTRYPOINT命令,指定一个执行的shell脚本,然后在entrypoint.sh文件中写上要执行的命令:
ENTRYPOINT ["./entrypoint.sh"]
entrypoint.sh文件如下:
// entrypoint.sh
nohup npm start &
nohup node ./server/server.js &
实际示例:
EXPOSE 8002 EXPOSE 9999 ENTRYPOINT cnpm i && npm run ci && pm2 start google-chrome --interpreter none -- --headless --disable-gpu --disable-translate --disable-extensions --disable-background-networking --safebrowsing-disable-auto-update --disable-sync --metrics-recording-only --disable-default-apps --no-first-run --mute-audio --hide-scrollbars --no-sandbox --remote-debugging-port=9999 && tail -f /root/logs/master-stdout.log