我已经将docker compose添加到了我的项目中.当我调试项目时,它会加载docker compose文件.在优先yml中,我指定了一个postgresql映像和卷,因此它会自动调出开发数据库.这很棒,因为您可以克隆存储库,而不必安装除docker以外的任何本地软件.
唯一不好的是运行测试.当我运行测试时,它不会调出数据库容器,它只是在测试项目中执行代码.因此,测试人员必须手动启动数据库映像.
我觉得我可能做错了什么.有没有更好的方法可以使测试与Visual Studio docker compose支持一起使用,从而自动启动数据库?
我考虑过在docker文件中运行测试,但我认为这可能会妨碍开发.这里有什么好的方法?
最佳答案
我不建议在Dockerfile中运行测试.正如您所说,这会使您的开发过程复杂化.
在数据库方面,您可以在docker-compose之外运行它,以便它始终在后台运行.只需从docker-compose.yml中删除postgres配置,然后使用docker run …运行postgres即可.这样,它将一直运行,直到您通过docker stop停止它为止.
docker run -v /tmp/pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=<PASSWORD> -d postgres