gpt4 book ai didi

mongodb - Docker撰写构建顺序

转载 作者:行者123 更新时间:2023-12-02 21:01:49 25 4
gpt4 key购买 nike

我对Docker的撰写和构建顺序有疑问。以下是用于启动.net应用程序的dockerfile

enter image description here

如您所见,在构建过程中,我使用“RUN dotnet test backend_test / backend_test.csproj”运行了一些测试

这些测试要求存在mongodb数据库。

我尝试使用docker-compose及其“depends_on”功能解决此依赖性,请参见下文。

enter image description here

但是,这似乎不起作用,因为当我运行“docker-compose up”时,我得到以下信息:

enter image description here

由于不存在mongodb,因此测试最终会超时。

取决于depends_on实际上是否完全影响构建顺序,还是仅影响开始顺序(即构建一切以正确顺序开始的 yield )?

还有另一种方法吗? (我希望在构建最终应用程序时运行测试)

请提前,让我知道是否需要其他信息

最佳答案

如您所料,depends_on仅用于运行时顺序,不用于构建时间-只是affects docker-compose up and docker-compose stop

我强烈建议您使所有构建彼此独立。也许您需要在此处考虑单独的构建器和运行时镜像,和/或使用基于Docker的CI(Gitlab,Travis,Circle等)来使这些依赖项可用于测试。

还要注意,depends_on通常会让人们感到失望-因为它只是在等待Docker的启动完成,而不是应用程序的启动。因此,当依赖它的容器启动时,您的DB /服务/可能仍在启动的任何东西都将开始使用它,从而导致超时等。这就是 HEALTH_CHECK 现在存在的原因(与 healthcheck feature in Docker Compose类似)

关于mongodb - Docker撰写构建顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60139255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com