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!"