Docker中的条件CMD

我想运行CMD ["npm", "run", "dev"]如果一个dev脚本存在于package.json中,否则CMD ["npm", "start"]

有没有一个习惯的docker的方式来做到这一点? 我想我的CMD可能是一个bash脚本,用来检查'npm run dev'是否存在。 有没有比这更干净的方法呢?

Dockerfile语法确实覆盖了这种用例。 你必须依靠脚本来实现这一点。

在Dockerfile中读取你的package.json是没有任何意义的。 你可以做的是有独立的Docker文件的开发环境和另一个不包含“dev”命令的Dockerfile。 通过这种方式,您可以更好地控制您正在构build的Docker镜像。