我试图为在构建过程中需要用户交互的图像创建一个Dockerfile。我知道这是非常丑陋的,但是没有简单的方法可以绕过它,因为它涉及到使用专有安装程序安装遗留软件。
一旦构建,容器将使用X11在web套接字上公开一个xpra应用程序。
目前,我通过创建一个卷并在容器第一次运行时进行安装来使其工作。不过,这会造成一些维护问题,因为我想将预构建的映像发送到注册表。
我愿意牺牲构建容器自动化的可能性,因为它很少被重建,但是经常被部署。
我考虑过的事情:
xpra。然后如何公开端口,以便访问web接口?$DISPLAY。如何在构建过程中将X11流量隧道化?我意识到这是Docker的一种反模式,但也是Docker真正发光的一个用例:导出一个遗留应用程序,这是一个噩梦,需要在浏览器上以易于使用的格式设置。
发布于 2018-11-06 18:42:51
我知道这个问题是在不久前提出的,但我最近遇到了同样的问题。既然没有贴出答案,我就把我的加上去。我通过实现下面概述的多步构建过程“解决了”这个问题。
但是,如果您在本地运行docker,则可以使用以下命令:
$ docker run --name <container_name> --env="DISPLAY" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix" \
<IMAGE ID> bash -c "<your commands to curl the installer and execute it>"https://stackoverflow.com/questions/43562969
复制相似问题