В msys2 каждый раз, когда я пытаюсь выполнить команду docker run [image] [cmd]
, такую, что я пытаюсь выполнить в контейнере Docker, перезаписывает команду, указанную в Dockerfile, она ищет команду локально и завершается неудачей, если она не существует.
Например, в моей организации есть образ докера, где исполняемый файл python находится в /usr/src/venv/bin/python
, а python - не в $PATH
.Это не то место, где установлен мой локальный питон, и когда я пытаюсь запустить docker run myimage /usr/src/venv/bin/python test.py
, я получаю эту ошибку: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"C:/msys64/usr/src/venv/bin/python\": stat C:/msys64/usr/src/venv/bin/python: no such file or directory"
Это изображение не является изображением Windows, поэтому оно вообще не должно смотреть на C:
, поэтому я долженпришли к выводу, что она ищет эту команду локально, а не в контейнере.
Примечание. Докер, который я запускаю, - это Docker для окон, добавленных в мой $PATH
в msys2.
$ which docker
/c/Program Files/Docker/Docker/Resources/bin/docker.exe
OneОбходной путь, который я использовал, - это создание нового Dockerfile, в котором есть строка, в которой нужно указать изображение, которое я хочу, и еще одна - это команда, которую я хочу.Тогда я могу запустить docker run some-image
без указания команды, и она работает.
Есть ли способ исправить эту проблему в msys2 без раздражающего обходного пути, описанного выше?