gpt4 book ai didi

docker - Docker撰写:可以对依赖服务的延迟启动进行建模吗?

转载 作者:行者123 更新时间:2023-12-02 20:26:39 24 4
gpt4 key购买 nike

我最初将此问题发布在Docker forums上,但没有得到任何答复。

我想知道对一组服务建模的最佳方法是什么,我们将它们称为dbwebbatchdb只是一个正在运行的数据库服务器实例(认为是MySQL)。 web是需要连接到数据库的Web应用程序。 batch是一个批处理应用程序,需要连接到同一数据库(它可以/将与web并行运行)。 db需要运行,才能运行webbatch。但是webbatch可以彼此独立运行(一个或两个可以同时运行)。如果两者都同时运行,则它们需要与同一个数据库实例通信(因此db实际上是在使用volumes_from一个单独的数据卷容器)。因此,如果用例更简单(想想总是一起运行的dbweb),那么它们都将被简单地定义为同一撰写文件中的服务,并且web链接到db

据我了解,它们不能全部在同一个Docker compose配置中定义。相反,我需要三种不同的配置。一个用于db,它首先启动,一个用于web(使用external_links查找db),另一个用于batch(也使用external_links查找db)。那是正确的,还是我没有考虑某些可用的机制?假设需要多配置设置,那么当dbweb组合启动时,是否有一种方法可以“懒惰”地初始化batch组合(如果未运行)?

最佳答案

如果web在docker-compose文件中具有指向db的链接,则db将始终首先开始。

据我所知,Docker永远不会知道何时启动数据库。 web容器的责任是正确启动并重试,直到基础启动(超时)。

对于batch服务,假设您不想每次启动webdb容器(使用docker-compose uprun)时都启动它,则可以尝试扩展服务。有关更多信息,请参见docs

关于docker - Docker撰写:可以对依赖服务的延迟启动进行建模吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31975600/

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