用Docker开发ASP.NET Core的习惯用法是什么?

问题

假设您有一个需要一个或多个外部服务(如PostgreSQL数据库)的ASP.NET项目,并且假设您已经编写了一个可以启动的Dockerfiledocker-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分半钟,