Docker: 容器永久重启
Docker: Container permanently restarting
我是整个 Docker 容器主题的新手,目前正尝试通过 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
命令没有显示任何错误,所以我有点不知道问题出在哪里。
系统主进程退出,所以docker被kill。您 运行 在后台运行两个进程,主要 bash 脚本退出。你可以:
- 运行 一个脚本在前台,或者
- 运行
sleep infinity
保留主脚本运行ning
- 重构所有内容,对于复杂的设置,请考虑使用服务管理,例如
supervisord
与选项 2 相同:
#! /bin/bash
python3 script1.py &
python3 script2.py &
sleep infinity # don't quit
正如我在评论中所说,如果您的脚本在进程完成之前退出,您可以使用 wait
命令等待所有脚本完成后再继续。
#! /bin/bash
python3 script1.py &
python3 script2.py &
wait
echo "Finished!"
我是整个 Docker 容器主题的新手,目前正尝试通过 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
命令没有显示任何错误,所以我有点不知道问题出在哪里。
系统主进程退出,所以docker被kill。您 运行 在后台运行两个进程,主要 bash 脚本退出。你可以:
- 运行 一个脚本在前台,或者
- 运行
sleep infinity
保留主脚本运行ning - 重构所有内容,对于复杂的设置,请考虑使用服务管理,例如
supervisord
与选项 2 相同:
#! /bin/bash
python3 script1.py &
python3 script2.py &
sleep infinity # don't quit
正如我在评论中所说,如果您的脚本在进程完成之前退出,您可以使用 wait
命令等待所有脚本完成后再继续。
#! /bin/bash
python3 script1.py &
python3 script2.py &
wait
echo "Finished!"