我正在尝试理解Docker,但是很难搞明白。我尝试在我的小项目(MERN栈)中实现它,并且在想如何区分开发,(可能是staging),和生产环境。
我看到一个示例,他们使用了2个Docker文件和2个docker-compose文件(每对为一个环境,因此Dockerfile + docker-compose.yml用于生产环境,Dockerfile-dev + docker-compose-dev.yml用于开发环境)。
但对我来说似乎有点过度设计,我更喜欢只用两个文件。
另外一个问题是,例如对于开发,我想全局安装nodemon,但不适用于生产。
在完美的解决方案中,我想运行类似于这样的东西:
docker-compose -e ENV=dev build
docker-compose -e ENV=dev up
请记住,我仍然不完全了解Docker,因此如果您注意到我关于Docker的一些误解,可以指出。