我有一个FastApi(FastApiUsers包)+MongoDb+Docker应用程序,我有一个必须在应用程序开始时启动的函数,用于连接到db:
async def on_startup():await init_beanie(database=db,document_models=[ User,],)
但是如果我做docker-compose -f docker-compose。yml up -d --build,这个函数不起作用。如果我在没有docker的情况下在本地启动我的应用程序,它工作得很好:
进口紫外线
ifname==“main": www.example.com (“ www.example.com :app”,host=“ www.example.com ”,log_level=“info”)
如何使用Docker?
我尝试在启动docker-container时创建一个命令id Dockerfile来初始化该函数。但是没有用
1条答案
按热度按时间ctehm74n1#
我不确定这是否有帮助,但无论如何:
1.你检查过你的容器状态和logs了吗?
1.能展示你的docker-compose就太好了。yml文件(例如
ports
和network: bridge
可以帮助或其他)1.我个人遇到了一些问题,因为MongoDB启动(部署)了一段时间,而其他容器在这一点上出现了错误。例如-你
docker compose up
,在2秒内你的FastApi启动,你得到了一个错误(技术上它工作),只有在5秒。MongoDB已经准备好了。control startup和healthcheck可以提供帮助1.不确定这是否需要,是否正确(它对我有效),但有我的docker-compose模板(
${VAR}
- variables):