t.me/atinfo_chat Telegram группа по автоматизации тестирования

После перезагрузки Docker daemon не могу запустить aerokube/selenoid

Теги: #<Tag:0x00007fd767f0f820> #<Tag:0x00007fd767f0f6e0> #<Tag:0x00007fd767f0f4d8>

После перезагрузки Docker daemon не могу запустить aerokube/selenoid , он остается зациклен в перегрузке со статусом Restarting (1)

Установку aerokube/selenoid и aerokube/selenoid-ui осуществлял согласно документацти с github.
aerokube/selenoid - https://github.com/aerokube/selenoid

curl -s https://aerokube.com/cm/bash | bash \
    && ./cm selenoid start --vnc --tmpfs 128

aerokube/selenoid-ui - https://github.com/aerokube/selenoid-ui (для большей стабильности указываю --network)

 docker run 
   --network selenoid \
    -d --name selenoid-ui  \
    --link selenoid                 \
    -p 8080:8080                    \
    aerokube/selenoid-ui --selenoid-uri=http://selenoid:4444

Так вот если комп отключается или просто перегружается Docker, то selenoid зависает в Restarting (1)

Что я делал и оно не помогло:

  • перегружал контейнер
  • остановливал и снова запускал контейнер
  • удалял контейнер и снова запускал его с образа aerokube/selenoid

Что помогло, но такой вариант не устраивает:

  • удаляю контейнер и все образы сaerokube/selenoid и selenoid/vnc_***
  • удаляю папку .aerokube
  • заново устанавливал с нуля, командой
curl -s https://aerokube.com/cm/bash | bash \
    && ./cm selenoid start --vnc --tmpfs 128

Есть какой то менезатратный вариант решить данную проблему, или подскажите, может я что то делая не правильно?

есть что-то в логах контейнера когда он в статусе Restarting?

docker@selenoid2:~$ docker logs 35cf1778af50
2020/07/28 20:52:47 [-] [INIT] [Loading configuration files...]
2020/07/28 20:52:47 [-] [INIT] [Loaded configuration from /etc/selenoid/browsers.json]
2020/07/28 20:52:47 [-] [INIT] [Video Dir: /opt/selenoid/video]
2020/07/28 20:52:47 [-] [INIT] [Logs Dir: /opt/selenoid/logs]
2020/07/28 20:52:47 [-] [INIT] [Using Docker API version: 1.40]
2020/07/28 20:52:47 [-] [INIT] [Timezone: UTC]
2020/07/28 20:52:47 [-] [INIT] [Listening on :4444]
2020/07/29 18:08:36 [-] [SHUTTING_DOWN] [5m0s]
2020/07/29 18:24:54 [-] [INIT] [Loading configuration files...]
2020/07/29 18:24:54 [-] [INIT] [/usr/bin/selenoid: browsers config: read error: open /etc/selenoid/browsers.json: no such file or directory]

Судя по логам, после перегрузки докера, пропадает папка /etc/selenoid с файлами в ней.

docker inspect selenoid
Посмотри Mounts и Binds проверь есть ли файл на тачке, ок ли путь к файлу

Аналогичная проблема была с файлом конфига с браузерами.
Даже вручную создал там файл и подложил в место, на которое ссылается Selenoid, но ошибка не ушла :frowning:

В итоге остановился на варианте использования их Configuration Manager (cm).
Почему вас, кстати, не устраивает вариант запуска через него?

ИМХО, cm - это конечно здорово, но тут надо либо хорошо понимать, как он работает изнутри, либо использовать классический вариант docker-compose с полным контролем над происходящим.

Судя по докам вся конфигурация должна храниться в ~/.aerokube/selenoid. Но вы используете –tmpfs флаг, который вообще ничего не перзистит. Любой рестарт или остановка контейнера и все пропало. Я более чем уверен, что cm не умеет автоматом все восстанавливать при рестарте. Тому подтверждение: единственный рабочий вариант - запуск с нуля.

Ну и вызов selenoid через cm, а ui - вручную, выглядит тоже немного странно. Типа вот так вот пусть какой-то скрипт что-то сделает за меня, а вот здесь я хочу сам все контролировать?

docker-compose с примаунченными volumes всегда работает, как часы. Не знаю, зачем вам этот cm сдался. Браузеры все равно не так часто обновляете. Новые версии приложения тоже лучше сознательно заливать, чтобы не нарываться на глупые баги сырых версий.

2 Симпатий