用Docker开发ASP.NET Core的习惯用法是什么?
问题
假设您有一个需要一个或多个外部服务(如PostgreSQL数据库)的ASP.NET项目,并且假设您已经编写了一个可以启动的Dockerfile
和docker-compose.yml
。
迭代修改代码,编译和运行应用程序的最习惯的方法是什么? 目前Dockerfile
只是作为Dockerfile
启动服务器,但是我做了一个改变之后,我做了:
docker-compose down docker-compose build docker-compose up
这需要以下步骤:
- 停止服务器
- 停止数据库和其他服务
- 取出容器
- 启动数据库
- 启动服务器
这往往需要1分半钟或更多的时间。
这也有问题,编辑到Razor模板(不需要使用dotnet build
编译重新编译)也需要重build容器,并将文件复制回来。 这导致等待1分半钟来进行简单的CSS样式更改或HTML文件更改,这在devise界面时非常麻烦。
我试过了
我已经四处搜寻优化这些时间,我正在想像的东西:
- 启动数据库和其他服务
- 用一个简单的bash进入ASP.NET Core容器
- 运行
dotnet build && dotnet run
在容器内的bash中dotnet build && dotnet run
(在该容器内有效地开发) - 永远不要停止数据库和其他docker-compose服务(除非我需要重置数据库状态)
但似乎这不是一个最佳的做法,而且几乎没有任何logging。
这个问题
docker工和docker工发展的惯用方式是什么?不用等待1分半钟,