所以我有一个奇怪的问题,我试图运行的python脚本...这有效:
docker run -it <my image> /bin/bash
<inside container> xvfb-run python myscript.py <arg>
一切都开始了,firefox以无头模式启动,这一切都很好。
这不起作用:
docker run -d <my image> /bin/bash -c "xvfb-run python myscript.py <arg>"
docker top显示cmd正在运行,但没有其他任何事情发生。
为什么行为会与我第二种方式运行时有所不同?
答案 0 :(得分:0)
所以对于遇到这个问题的其他人来说,这就是我最终解决问题的方法:
不要使用xvfb-run。我不确定为什么但是码头工得非常不开心。你需要让Xvfb在后台运行。但你必须以某种方式做到这一点!
我无法在RUN命令中让Docker使用Xvfb,但是很快就用完了脚本。创建一个名为start_headless_display.sh的脚本,看起来像这样:
Xvfb :1 -screen 0 1600x1200x16 &
python /myscript.py <args>
在Dockerfile中,确保脚本成为图片的一部分并添加以下说明:
ENV DISPLAY :1.0
RUN chmod a+x /start_headless_display.sh
CMD /start_headless_display.sh
现在运行
docker run -d <your image>
一切都应该有效 - docker top会显示你的脚本和Firefox快乐地离开。