Я пытаюсь заставить работать интеграционный тест.На этапе инициализации теста я пытаюсь раскрутить сервер Redis из образа докера.
var p = new Process { StartInfo = new ProcessStartInfo("docker", "run --name redistest –p 6379:6379 redis")};
p.Start();
Когда я это делаю, процесс завершается с кодом выхода 125 .Если я закомментирую эти строки, попаду в точку останова в тесте перед выполнением тестового кода и вместо этого запусту из командной строки
docker run --name redistest -p 6379:6379 redis
, тест будет выполняться, как и ожидалось, при продолжении с точки останова. 125 существующий код просто означает, что docker run
не удалось, поэтому больше информации не требуется.
До вызова командной строки или вызова C # я удостоверился, чтонет контейнера с именем redistest
с
docker stop redistest
docker rm redistest
Однако разница в поведении сохраняется.Все эти попытки запустить Docker программно завершаются неудачно:
- добавление
-d
- , работающего от имени обычного пользователя
- , работающего с повышенными привилегиями
- выполняется из теста
- , запущенного из консольного приложения .NET Framework
Почему программный процесс создания команды docker run
приводит к выходу Docker с 125?
Программно работает просто отлично для некоторых изображений, но не для других.