- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图使用 docker 来包含我的应用程序并转发 x11 以使用 chromedriver 生成 Chrome。
我可以让浏览器产生,但它的产生都是空白的。上下文菜单也是空白的。它关闭而不会崩溃。
介绍信息:(可跳过)
我有一个应用程序(django+postgresql+supervisor+uwsgi+celery+redis+nginx+selenium)通过带有 Selenium 的 Chromedriver 生成 Chrome/Chromium 浏览器,在不同的预加载用户数据目录中打开它们(预加载 session 和登录) 并在不同的站点做一些自动化的事情。
在我的电脑上,一切都顺畅而清晰。
一些同事要求我为他们安装我的应用程序。我告诉他们它只能在 Linux 上运行,因为我在 Linux 中开发,我不确定在 Windows 中是否一切都一样。
在其中 1 个安装 Ubuntu 后,我尝试使用我的源代码安装所有内容,使用我的私有(private) git 存储库进行共享/更新,这非常痛苦。
首先,我在安装正确的 Python 版本时遇到了麻烦,之后,主管没有按预期工作。每一步都会带来不同的麻烦,而应用程序本身会出现一些我自己的环境中没有的错误。
麻烦本身:(可以从这里开始阅读)
因此,经过大量阅读,我认为 Docker 非常适合,即使它不是为打开桌面应用程序而设计的。一个 X11 前锋可以解决这个问题。
我直接使用了 Docker-compose 文件(以加快并行进程设置)。这其实是我第一次使用 docker,感觉很简单。
我制作了一个 Dockerfile 和一个 docker-compose 文件来设置所有内容(正确的 python 版本、chrome/chromedrivers 及其依赖项),并且除了 Chrome 之外的所有内容都很好用。
在使用 X11 重定向进行一些挖掘和测试之后,我可以让我的应用程序启动 Chrome 并在我的主机中生成 Chrome 窗口,但窗口本身是空白的。即使右键单击,打开的上下文菜单也是空白的。
我跑了xhost +local:root
在我的主机上,但这不会解决问题。
我在这里读过 http://wiki.ros.org/docker/Tutorials/GUI在第 3 部分。孤立的方式,我应该做这样的事情
```XSOCK=/tmp/.X11-unix
XAUTH=/tmp/.docker.xauth
touch $XAUTH
xauth nlist $DISPLAY | sed -e 's/^..../ffff/' | xauth -f $XAUTH nmerge -
docker run -it \
--volume=$XSOCK:$XSOCK:rw \
--volume=$XAUTH:$XAUTH:rw \
--env="XAUTHORITY=${XAUTH}" \
--env="DISPLAY" \
-user="myNewUserName" \
osrf/ros:indigo-desktop-full \
rqt```
FROM python:3.7.4-slim-stretch
RUN apt-get update && apt-get install -y chromium chromedriver build-essential
ENV PYTHONUNBUFFERED 1
# My Actual System Username, i've also tested with other username and i have the same issue
ENV USERNAME "gabriel"
# These UID and GID match mines
RUN export uid=1000 gid=1000 && \
addgroup \
--system \
--gid ${gid} \
${USERNAME} && \
adduser \
--system \
--uid ${uid} \
--shell /bin/bash \
--gid ${gid} \
${USERNAME} && \
usermod -aG sudo ${USERNAME} && \
passwd -d ${USERNAME}
RUN mkdir /app && \
mkdir /config && \
mkdir -p /var/www/static
ADD ./config /config
RUN pip install -r /config/requirements.pip
RUN chown -R ${uid}:${gid} /app && \
chown -R ${uid}:${gid} /config && \
chown -R ${uid}:${gid} /var/www && \
chmod +x /config/application_launch.sh
USER ${USERNAME}
ENV HOME /home/${USERNAME}
WORKDIR /app
ADD ./src /app
services:
db:
image: postgres
container_name: ps01
supervisor:
build: .
command: supervisord -c /config/supervisord.conf
volumes:
- ./src:/app
- ./src/static:/var/www/static
- /tmp/.X11-unix:/tmp/.X11-unix:rw
ports:
- "9001:9001"
expose:
- "8000"
depends_on:
- db
extra_hosts:
- "yangoo.network:10.68.0.1"
container_name: su01
environment:
- DISPLAY
- UID
- QT_X11_NO-MITSHM=1
nginx:
image: nginx
container_name: wb01
ports:
- "80:80"
volumes:
- ./src:/app
- ./config/nginx:/etc/nginx/conf.d
- ./src/static:/var/www/static
depends_on:
- supervisor
links:
- supervisor
最佳答案
有一个 Chromium 错误:https://bugs.chromium.org/p/chromium/issues/detail?id=1048186
根据评论,添加ipc: host
到 docker-compose 中的主管配置将起作用:
supervisor:
build: .
command: supervisord -c /config/supervisord.conf
volumes:
- ./src:/app
- ./src/static:/var/www/static
- /tmp/.X11-unix:/tmp/.X11-unix:rw
ports:
- "9001:9001"
expose:
- "8000"
depends_on:
- db
extra_hosts:
- "yangoo.network:10.68.0.1"
container_name: su01
environment:
- DISPLAY
- UID
- QT_X11_NO-MITSHM=1
ipc: host
关于python - Docker X11 Forward 得到黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57021411/
我正在学习微处理器类(class),但我的代码有问题。 我需要编写一个程序代码,让一个词四处移动。 代码在 (80*25) 屏幕上正常工作(因为我的计算依赖于它) 但问题是:当我最大化显示屏幕时,一切
尝试使用 exoplayer v2.10.5 播放 m3u8 时变黑,这让我添加了或者我如何使用 exoplayer v2.10.5 和 gradle 3.5.3 播放 m3u 或者哪个版本的 exo
有几个现有的例子,但我想要一个使用 complex_filter 来实现目标的命令,而不需要做额外的事情,比如生成空白视频/音频文件。 环顾四周,这是迄今为止我想出的最好的: ffmpeg -i vi
服务是“允许服务与桌面交互”。 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls,
我有一个显示youtube的本地ios应用程序,直到昨天该应用程序运行良好,但是现在该应用程序显示了youtube,只有当我触摸“播放”而不是播放视频时,它才显示黑屏。 我的应用程序没有更改,因此我认
我正在尝试向我的游戏添加一些基本的 HUD,但是当我尝试更改视角时,我可以看到文本(我之前提到过 HUD),但是在黑屏上。问题出在哪里? gl.glMatrixMode(GL_PROJ
我的转换不起作用,第一个 ImageView 显示了可绘制对象,但在运行动画时它只是以白屏结束。不确定我错过了什么。 主要布局 第二个 Activity 布局 主要 Activity pu
出于某种原因,当我尝试运行此代码时,我得到的只是黑屏。我怎样才能真正让它显示我想要显示的内容? 我正在使用 Eclipse,并且已将 lwjgl.jar 和 lwjgl_utils.jar 添加到构建
我正在遵循有关构建“弹出锁类型”游戏的教程,当我在模拟器中运行它时,会出现黑屏。我之前查过并尝试重置模拟器并重新启动计算机,但它不起作用有人可以帮助我并告诉我为什么会发生这种情况 import Spr
我正在尝试 MrSnakey 游戏。当我运行它时,它没有给我任何错误。但是,模拟器在启动时显示黑屏。你们不知道如何解决吗?解决此问题所需的有关我的项目的任何信息,请告诉我,我会在此处发布。 首先是 l
所以我遇到了相机卡住的问题。当它第一次被调用时,它工作得很好。并在按钮上显示我的图像。但是,如果我回到同一个按钮再次调用相机,或者调用相机的页面上的任何其他按钮,它会启动相机但不是黑屏。相机实际上并没
我几乎阅读了关于这个主题的所有帖子,但似乎没有一个有帮助。 我正在 try catch 当前屏幕的屏幕截图。为此,我正在使用 getDrawingCache。这是我的代码: mRootView.get
我已经用我命名为 Label 的类实现了 CCLabelProtocol 和 CRGBAProtocol: #import @interface Label : CCNode @property
晚上好。我为 iOS 开发了几年,自从 iOS8 发布以来,我遇到了一个奇怪的问题。我确信它会被修复,但现在是 8.1.2,而且它还在发生。在 iOS7 上一切正常,但在运行 iOS8 的手机上发生了
这是我的完整代码。当我右击几次(动画正常工作)时,屏幕卡住。我认为来自 if(SDL_GetTicks() - start_time format, 0, 0xFF, 0xFF ) );
我需要执行以下操作: 用户登录。 重定向至欢迎屏幕。 在加载大量记录时查看欢迎屏幕。 重定向到工作屏幕。 我正在寻找一种在 Action 类中执行类似操作的方法: public class LinkA
我在 KMZ 文件中有一个坐标数据集,我希望能够为用户提供使用 GMSPanoramaView(使用 1.6.0 版本的 Google-Maps-iOS-SDK)查看街景的选项).这是我的代码的样子:
在尝试将应用内 HTML 页面加载到我们的 UIWebView 时,我在 iOS9 上遇到了奇怪的行为 - 有时页面加载,有时只是显示为空白屏幕。 webViewDidFinishLoad 函数也在这
我试图显示我的收藏 View ,但我得到的只是黑屏。我知道我在某处遗漏了一些东西,但我似乎找不到它是什么。 #import "StoreCollectionViewController.h" #imp
我正在尝试从我们的 iOS 应用程序中删除所有 Storyboard,因为在使用 Git 的团队中工作时它们会变得一团糟。 我现在在 AppDelegate 的 application(_:didFi
我是一名优秀的程序员,十分优秀!