【发布时间】:2021-05-26 12:46:12
【问题描述】:
我是整个 Docker Container 主题的新手,目前正尝试通过 bash 脚本在 shell 中运行多个 python 脚本(因为就同时运行多个 python 脚本而言,这似乎是最简单的事情)。在此之前,我通过以下 Dockerfile 构建我的图像
FROM debian:buster-slim
ENV PACKAGES1="build-essential git python3"
RUN apt-get update && \
apt-get install -y $PACKAGES1
COPY /mnt /mnt
CMD [ "/bin/bash", "/mnt/setup_bash.sh" ]
执行setup_bash.sh
#! /bin/bash
python3 script1.py &
python3 script2.py &
在运行生成的容器后,他会不断重新启动并且不会保持活动状态。同时docker logs 命令没有显示任何错误,所以我有点不知道是什么问题。
【问题讨论】:
-
当主进程完成时,容器终止。由于您正在生成进程,并且它们都没有作为主进程运行,因此容器终止。
-
没有看到它“不断重启”的部分,但看起来它可能不是“等待”子进程完成
-
你能否重组它以在两个单独的容器中每个容器启动一个脚本,而无需启动器 shell 脚本?即使它需要两个单独的容器(可能还有两个单独的图像),但具有较小的单一用途容器最终会更容易运行和调试。
-
如果您根本不希望容器退出,假设 python 脚本正在启动某种有用的服务,您可以在启动脚本中放置一个无限循环以确保脚本永远不会终止。 (可能不是理想的方式,但可以工作)
标签: python bash docker containers