我已将 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
关于visual-studio - 使用 Visual Studio Docker 组合支持运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54897601/