【发布时间】:2019-06-10 15:01:34
【问题描述】:
在项目中,我有两个烧瓶应用程序,第一个 api 对一批文档调用并将它们分类为预测类,并在 json 文件中维护所有批次的状态。第二个 api 的工作是通过读取状态文件来告知特定批次的状态。现在我们不能在不同的容器上执行应用程序,因为它们都依赖于一个文件。状态通知 api 告诉批处理的实时状态,因此我们也不能等待处理 api 先完成它的 atsk,然后导出状态文件以供第二个 api 使用。我应该如何应对这一挑战,任何线索都会有很大帮助。
最初我在 docker 文件中尝试这些行:
CMD ["python3", "./pollingAPI.py"] CMD ["python3", "./m_api.py"]
我也在命令中尝试了 nohup 但没有结果:
运行 nohup python3 pollingAPI.py & sleep 5 CMD ["python3", "./m_api.py"]
使用屏幕也无法正常工作:
运行 nohup python3 pollingAPI.py & sleep 5 && screen -S myScreen CMD ["python3", "./m_api.py"]
【问题讨论】:
-
您可以考虑使用在两个容器之间共享的 Docker 卷来保存同步所需的文件。更好的是设计一个不需要文件(和共享文件系统)的不同同步系统。如果您只尝试在容器中运行一个进程,这将容易得多。
-
嘿@DavidMaze 是否可以将我们本地系统上的文件夹映射到 docker 容器,以便我可以将同一个文件夹映射到另一个容器,这样两个容器都可以读取相同的文件。而且根据你的建议,我也试图找到一种方法来消除依赖,但完全不可能消除这种依赖。
标签: api docker flask docker-image