Selenium docker video не работает network_mode в качестве хоста в docker-compose

В файле docker-compose я установил содержащийся с хром-автономным изображением и другой узел (с именем test) в качестве средства запуска тестов. Файл Cloudbuild.yaml запускает тест, и он работает.

Вот файл docker-compose:

      version: "3"
services:
  selenium:
    image: selenium/standalone-chrome:4
    volumes:
    - /dev/shm:/dev/shm
    network_mode: host

  test:
    image:  node:16-alpine
    entrypoint:
    - sh
    - -c
    - |-
      cd /test
      npm install
      sleep 3
      npm run test
    volumes:
    - .:/test
    depends_on:
    - selenium
    network_mode: host

Я не могу добавить сервис видеомагнитофона селеном.

      chrome_video:
    image: selenium/video:ffmpeg-4.3.1-20210804
    volumes:
      - /Users/videos:/videos 
    depends_on:
      - chrome
    environment:
      - DISPLAY_CONTAINER_NAME=chrome
      - FILE_NAME=chrome_video.mp4

Добавление network_mode:hostв качестве аргумента chrome_video не работает. Они не слышат друг друга.

После инициализации контейнера chrome_video его файл журнала:

      2021-08-20 16:23:05,910 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.

2021-08-20 16:23:05,913 INFO supervisord started with pid 10

2021-08-20 16:23:06,915 INFO spawned: 'video-recording' with pid 12

2021-08-20 16:23:06,920 INFO spawned: 'video-ready' with pid 13

Checking if the display is open...

2021-08-20 16:23:06,924 INFO success: video-recording entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)

2021-08-20 16:23:06,924 INFO success: video-ready entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
Waiting before next display check...

Waiting before next display check...

ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers

built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)

configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libass --enable-fontconfig --enable-libfreetype --enable-libvidstab --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxcb --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --enable-libbluray --enable-libzmq --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-libopenjpeg --enable-libkvazaar --enable-libaom --extra-libs=-lpthread --enable-libsrt --enable-libaribb24 --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib

libavutil 56. 51.100 / 56. 51.100

libavcodec 58. 91.100 / 58. 91.100

libavformat 58. 45.100 / 58. 45.100

libavdevice 58. 10.100 / 58. 10.100

libavfilter 7. 85.100 / 7. 85.100

libavresample 4. 0. 0 / 4. 0. 0

libswscale 5. 7.100 / 5. 7.100

libswresample 3. 7.100 / 3. 7.100

libpostproc 55. 7.100 / 55. 7.100

[x11grab @ 0x55f0bf04fb80] Cannot open display selenium:99.0, error 1.

selenium:99.0: Input/output error

2021-08-20 16:23:32,692 INFO exited: video-recording (exit status 1; not expected)Waiting before next display check...

Waiting before next display check...


Waiting before next display check...

Waiting before next display check...

ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers

built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)

configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libass --enable-fontconfig --enable-libfreetype --enable-libvidstab --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxcb --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --enable-libbluray --enable-libzmq --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-libopenjpeg --enable-libkvazaar --enable-libaom --extra-libs=-lpthread --enable-libsrt --enable-libaribb24 --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib

libavutil 56. 51.100 / 56. 51.100

libavcodec 58. 91.100 / 58. 91.100

libavformat 58. 45.100 / 58. 45.100

libavdevice 58. 10.100 / 58. 10.100

libavfilter 7. 85.100 / 7. 85.100

libavresample 4. 0. 0 / 4. 0. 0

libswscale 5. 7.100 / 5. 7.100

libswresample 3. 7.100 / 3. 7.100

libpostproc 55. 7.100 / 55. 7.100

[x11grab @ 0x55f0bf04fb80] Cannot open display selenium:99.0, error 1.

selenium:99.0: Input/output error

2021-08-20 16:23:32,692 INFO exited: video-recording (exit status 1; not expected)



 Waiting before next display check...
    
    Waiting before next display check...
    
    Waiting before next display check...
    
    Waiting before next display check...
    
    ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
    
    built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
    
    configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libass --enable-fontconfig --enable-libfreetype --enable-libvidstab --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxcb --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --enable-libbluray --enable-libzmq --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-libopenjpeg --enable-libkvazaar --enable-libaom --extra-libs=-lpthread --enable-libsrt --enable-libaribb24 --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib
    
    libavutil 56. 51.100 / 56. 51.100
    
    libavcodec 58. 91.100 / 58. 91.100
    
    libavformat 58. 45.100 / 58. 45.100
    
    libavdevice 58. 10.100 / 58. 10.100
    
    libavfilter 7. 85.100 / 7. 85.100
    
    libavresample 4. 0. 0 / 4. 0. 0
    
    libswscale 5. 7.100 / 5. 7.100
    
    libswresample 3. 7.100 / 3. 7.100
    
    libpostproc 55. 7.100 / 55. 7.100
    
    [x11grab @ 0x55f0bf04fb80] Cannot open display selenium:99.0, error 1.
    
    selenium:99.0: Input/output error
    
    2021-08-20 16:23:32,692 INFO exited: video-recording (exit status 1; not expected)

Есть ли способ включить запись видео для этой настройки?

Заранее спасибо.

1 ответ

Если вам не нужна служба, работающая на хосте, нет необходимости использовать network_mode: host.

Более того, видеоконтейнер должен знать имя службы / контейнера, в котором VNC выполняет запись потока. В этом случае, исходя из docker-compose файл, которым вы делитесь, DISPLAY_CONTAINER_NAME=chrome должно быть на самом деле DISPLAY_CONTAINER_NAME=selenium.

Другие вопросы по тегам