我正在尝试创建一个包含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目录。
发布于 2018-07-02 21:20:09
我最终解决了这个问题,并知道为什么我一开始就忘记了(我只能在这个问题上工作得很零碎。包含的Docker文件:ENV XDG_RUNTIME_DIR=/tmp
基本重定向运行时目录,但sudo实际上删除了该环境变量。
https://stackoverflow.com/questions/51135190
复制相似问题