Запускает Xvfb и bin / bash в Dockerfile

#docker #xvfb

#docker #xvfb

Вопрос:

У меня есть контейнер docker, который использует в качестве точки входа /bin/bash . Оказавшись в контейнере, я могу запустить xvfb таким образом:

Xvfb :1 -screen 0 1024x768x24 extension GLX render -noreset >> xsession.log 2>amp;1 amp;

Однако я бы хотел, чтобы эта команда выполнялась в Dockerfile, а затем вводилась в контейнер. Я хотел бы использовать /bin/bash в интерактивном режиме. Я пробовал несколько решений, но, похоже, ничего не работает.

Что я пробовал:

runxvfb.sh

 #!/bin/sh
echo try
Xvfb :1 -screen 0 1024x768x24  extension GLX  render -noreset >> xsession.log 2>amp;1 amp;
  

В Dockerfile

 ADD runxvfb.sh /runxvfb.sh
RUN chmod a x /runxvfb.sh
CMD ["/runxvfb.sh; bin/bash"]
  

и несколько комбинаций этого подхода, но, похоже, он не работает. Оказавшись внутри контейнера, ps показывает, что демон xvfb не запущен.

Комментарии:

1. это не оставит интерактивный bash открытым — изменил мой вопрос, чтобы было ясно, что я хочу попасть в /bin/ bash

2. Похоже, это тоже не работает. Мой runxvfb.sh файл #!/bin/ sh echo попробуйте Xvfb: 1 -screen 0 1024x768x24 расширение GLX render -noreset >> xsession.log 2> amp; 1 и я получаю «try», но после этого контейнер docker закрывается (см. Обновленный вопрос)

3. Вы не можете запускать фоновые процессы в Dockerfile; образ Docker содержит только файловую систему, а не какие-либо запущенные процессы. Виртуальная машина (с X-сервером, полной системой инициализации, стандартным рабочим столом Linux и либо демоном ssh, либо графической консолью) может лучше соответствовать этому варианту использования.