我正在尝试创建一个带有xpra
和chrome
的docker镜像。由于我还需要能够使用此基本映像来安装其他软件,因此我不会在Dockerfile
末尾更改用户。
在构建期间,我将此图像用于两个目的:
-建立最终形象
-使用基本映像运行xpra
和chrome
进行构建
第一次,您需要是root用户,第二次,您需要成为chrome用户。我试图通过使用sudo来解决此问题:(例如sudo -i -u chrome xpra ...
,但这会引起问题。如果我将基本映像更改为chrome用户(在Dockerfile中为USER CHROME
),则可以正常工作。>
我得到的完整错误:
2018-07-02 11:23:39,828 Error: cannot start the desktop server
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/xpra/scripts/server.py", line 1011, in run_server
app.setup()
File "/usr/lib/python2.7/dist-packages/xpra/server/server_base.py", line 119, in setup
c.setup(self)
File "/usr/lib/python2.7/dist-packages/xpra/server/mixins/audio_server.py", line 55, in setup
self.init_pulseaudio()
File "/usr/lib/python2.7/dist-packages/xpra/server/mixins/audio_server.py", line 117, in init_pulseaudio
os.mkdir(self.pulseaudio_private_dir, 0o700)
OSError: [Errno 2] No such file or directory: '/run/user/1000/xpra/pulse-:0'
2018-07-02 11:23:39,828 [Errno 2] No such file or directory: '/run/user/1000/xpra/pulse-:0'
两个图像中都不存在/run/user
目录。
答案 0 :(得分:1)
我最终解决了这个问题,并且知道为什么我首先忘记了(我只能处理这个真正零碎的东西。Docker文件包含:ENV XDG_RUNTIME_DIR=/tmp
基本上重定向了运行时目录,但是sudo实际上删除了该环境变量。