Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows 10. Video is not recorded when Docker Uses the WSL 2 based engine #293

Open
SergeyShidlovsky opened this issue Feb 25, 2021 · 14 comments
Labels
Milestone

Comments

@SergeyShidlovsky
Copy link

Precondition

  • Install Docker on Windows 10 OS
  • Consider that docker is usign WSL 2 Based Engine
  • Screenshot_485
  • Install Configuration manager
  • Install Selenoid and selenoid-UI
  • Pull videorecorder

Steps to reproduce

  • Run test in selenod
  • Consider that videorecorder image is in use
  • Screenshot_478
  • After test is finished please go to folder with video and check weather video is recorded and saved

Expected result

  • Video is recorded and saved in video folder

Actual result

  • Video is not recorded and saved

Workaround

  • Please use Hyper-V based engine for docker
  • Screenshot_475
@vania-pooh
Copy link
Member

@SergeyShidlovsky video recorder container logs could help to diagnose. We unfortunately don't have Windows available.

@ArysX
Copy link

ArysX commented Mar 3, 2021

I have the same problem, after disable WSL 2 in docker settings Video recorded works fine.

Logs from container with WSL 2 enabled:
2021/03/03 10:48:04 [17] [VIDEO_ERROR] [Failed to rename /opt/selenoid/video/selenoide9e31f300553f1729bce65fa19dfe109.mp4 to /opt/selenoid/video/Test_Scenario.mp4: rename /opt/selenoid/video/selenoide9e31f300553f1729bce65fa19dfe109.mp4 /opt/selenoid/video/Test_Scenario.mp4: no such file or directory]

@vania-pooh
Copy link
Member

@ArysX @SergeyShidlovsky are you installing Selenoid with CM tool?

@SergeyShidlovsky
Copy link
Author

SergeyShidlovsky commented Mar 5, 2021

@vania-pooh , I apologize for such a late response,

@ArysX @SergeyShidlovsky are you installing Selenoid with CM tool?

Yes, I had installed selenoid using configuration management, Also, I have launched selenoid using the command
'cm.exe selenoid start --vnc'

@ArysX, thanks for the logs

@mvishnevsky
Copy link

Have the same issue using docker-compose, videos are not saved.

@vania-pooh vania-pooh transferred this issue from aerokube/selenoid Mar 26, 2021
@vania-pooh vania-pooh added the bug label Mar 26, 2021
@vania-pooh vania-pooh added this to the 1.8.0 milestone Mar 26, 2021
@vania-pooh
Copy link
Member

Seems to be a CM bug. Will investigate.

@SergeyShidlovsky
Copy link
Author

@vania-pooh Any updates with this bug?

@benzman81
Copy link

benzman81 commented Jul 30, 2022

Just moved from vagrant and virtualbox to WSL 2. Same error. We use WSL 2 with Rancher Desktop.

@vania-pooh
Copy link
Member

We plan to completely deprecate this tool and move to raw Docker commands instead. Too many weird cases to cover.

@benzman81
Copy link

@vania-pooh ok, thanks. We now moved to plain docker and videos work as expected.

@SergeyShidlovsky
Copy link
Author

@vania-pooh … are you talking about deprecation of Selenoid Configuration Manager Tool?

@vania-pooh
Copy link
Member

@SergeyShidlovsky we are considering this.

@Lucifar2
Copy link

@benzman81 Hi, could you help me to setup selenoid with Rancher desktop. Currently I am facing issue for selenoid container being in Restarting status. Do you know if you faced this same issue ?

@benzman81
Copy link

benzman81 commented Feb 26, 2024

@benzman81 Hi, could you help me to setup selenoid with Rancher desktop. Currently I am facing issue for selenoid container being in Restarting status. Do you know if you faced this same issue ?

I can share parts of our start script we use for rancher desktop in wsl. Maybe that helps:

#!/bin/bash

windowsUserFolder=$(wslpath "$(wslvar USERPROFILE)")
aerokubeFolder=$windowsUserFolder/.aerokube
mkdir -p $aerokubeFolder || true
mkdir -p $aerokubeFolder/selenoid || true
mkdir -p $aerokubeFolder/selenoid/config || true
mkdir -p $aerokubeFolder/selenoid/video || true
mkdir -p $aerokubeFolder/selenoid/logs || true
mkdir -p $aerokubeFolder/selenoid-ui || true

docker rm -f selenoid || true
docker rm -f selenoid-ui || true
find $aerokubeFolder/selenoid/video -mindepth 1 -maxdepth 1 -mmin +120 -name '*.mp4' | xargs rm -rf || true
find $aerokubeFolder/selenoid/logs -mindepth 1 -maxdepth 1 -mmin +120 -name '*.log' | xargs rm -rf || true

cd /home/$USER

cd /home/$USER/selenium-grid-ggr-dockerselenoid

rm $aerokubeFolder/selenoid/config/browsers.json || true

cp /YOUR_PATH_TO_BROWSERS_JSON/browsers.json $aerokubeFolder/selenoid/config/browsers.json

cat $aerokubeFolder/selenoid/config/browsers.json | /home/$USER/jq 'map(.versions)|.[]|map(.image)|.[]' | xargs -L1 docker pull

docker pull selenoid/video-recorder:latest-release

cd /home/$USER

docker run -d --name selenoid --restart=always -p 4444:4444 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $aerokubeFolder/selenoid/config/:/etc/selenoid/:ro \
-v $aerokubeFolder/selenoid/video/:/opt/selenoid/video/ \
-v $aerokubeFolder/selenoid/logs/:/opt/selenoid/logs/ \
-e OVERRIDE_VIDEO_OUTPUT_DIR=$aerokubeFolder/selenoid/video/ \
aerokube/selenoid:1.11.0 \
-limit 2 -cpu 1.0 -mem 1g -retry-count 10 -capture-driver-logs -timeout 300s -service-startup-timeout 300s -session-attempt-timeout 300s -session-delete-timeout 300s -conf /etc/selenoid/browsers.json -video-output-dir /opt/selenoid/video/ -video-recorder-image selenoid/video-recorder:latest-release -log-output-dir /opt/selenoid/logs/

DOCKER_GATEWAY_ADDR=`docker inspect selenoid -f {{.NetworkSettings.Gateway}}`
docker run -d --name selenoid-ui --restart=always -p 8086:8080 aerokube/selenoid-ui:1.10.10 --selenoid-uri http://${DOCKER_GATEWAY_ADDR}:4444

You should only need to replace YOUR_PATH_TO_BROWSERS_JSON.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants