繁体   English   中英

在 Docker 上同时运行 2 个脚本

[英]Run 2 Script at same time on Docker

我有一个项目,当我运行 mu Docker Image 时,我需要运行 2 个脚本。 其中两个这个脚本有无限循环。 所以他们都不会停下来。

我试过使用:

CMD ["python3", "main.py", "btcusdt"] 
CMD ["python3", "Flask_API/api_main.py"]

但我发现只有最后一行 CDM 有效。

有没有办法做到这一点? 还是应该拆分我的代码并创建 2 个 Docker 映像?

谢谢你的时间。

这是我当前不工作的 Dockerfile:

FROM python:3.8

COPY requirements.txt requirements.txt


RUN pip install -r requirements.txt
COPY . .


CMD ["python3", "main.py", "btcusdt"]
CMD ["python3", "Flask_API/api_main.py"]

如果 dockerfile 中的CMD指令多于一条,则只能有一条,最后一条会覆盖之前的CMD指令。

我认为更好的方法是创建单独的 docker 容器并相互交谈。 这是一个教程:如何在 docker 容器之间进行通信

但是如果你真的需要在一个容器中运行这两个脚本,

这是方法

  • 在您的项目中创建一个 bash 脚本,并在脚本中包含两个 bash 命令,这是一个示例。
#!/bin/bash

exec python3  main.py btcusdt &
exec python3 Flask_API/api_main.py

  • COPY指令添加到 Dockerfile 以将我们的 bash 脚本复制到容器并通过RUN指令允许可执行权限。
COPY script.sh ./
RUN chmod a+x script.sh
  • 现在用一条替换前面的两条CMD指令来执行我们的 bash 脚本。
CMD ["./script.sh"]

这是为您准备的完整 Dockerfile

FROM python:3.8

COPY requirements.txt requirements.txt


RUN pip install -r requirements.txt
COPY . .

RUN chmod a+x script.sh

CMD ["./script.sh"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM