Я пытаюсь открыть графический интерфейс 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
У меня заканчиваются идеи, так что все будет оценено :)
Наверное, я упускаю важную часть.