Рейтинг:2

Откройте графический интерфейс в контейнере Docker, работающем на безголовой машине.

флаг in

Я пытаюсь открыть графический интерфейс Firefox в контейнере Docker. Я избегаю наиболее распространенного решения, которое, кажется, используется в какой-то момент /tmp/.X11-unix с хоста, потому что я хочу, чтобы контейнер работал на любом хосте, включая безголовый хост без X11.

Цель состоит в том, чтобы просто использовать селен, чтобы открыть графический интерфейс Firefox и сделать снимок экрана. Я не совсем уверен, возможно ли это, но я думаю, что это так.

ОТ убунту: последняя

RUN DEBIAN_FRONTEND="noninteractive" apt-get -y update
RUN DEBIAN_FRONTEND="noninteractive" apt-get -y install python3 python3-pip firefox-geckodriver x11vnc xvfb
RUN DEBIAN_FRONTEND="noninteractive" apt-get -y install x11-xserver-utils
RUN DEBIAN_FRONTEND="noninteractive" pip install --upgrade --no-cache-dir pip-with-requires-python && \
    pip install --upgrade --no-cache-dir --prefer-binary селен

РАБОЧИЙКАТАЛОГ /приложение

КОПИРУЙТЕ Entrypoint.sh .
СКОПИРОВАТЬ script.py .

ВЫПОЛНИТЬ chmod +x entrypoint.sh

CMD ["x11vnc", "-создать", "-навсегда"]
ЭКРАН ДИСПЛЕЙ :0
CMD ["xhost", "+"]

ТОЧКА ВХОДА ["/app/entrypoint.sh"]

В настоящее время xhost выводит xhost: невозможно открыть дисплей: 0. я не уверен насчет :0 но я пробовал несколько значений.

Selenium, конечно, также терпит неудачу с:

Не удалось инициализировать сервер: не удалось подключиться: в подключении отказано
Ошибка: невозможно открыть дисплей: :0

У меня заканчиваются идеи, так что все будет оценено :) Наверное, я упускаю важную часть.

muru avatar
флаг us
Вы не собираетесь запускать графический интерфейс, зависящий от X11, без запуска X11 *где-то*. Вы можете запустить сам Firefox в автономном режиме и попросить его сделать снимок экрана или что-то еще, например, https://stackoverflow.com/a/48377879/2072269.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.