为什么我的#34; docker-compose run"在Windows上无法正常工作?

时间:2017-11-15 20:28:01

标签: windows docker docker-compose git-bash

所以我正在运行一个调用的脚本:

docker-compose run --rm web sh /data/bin/install_test_db.sh

并且在ubuntu上运行它似乎工作正常但是当我使用Git Bash在Windows上运行它时出现此错误:

sh: 0: Can't open C:/Program Files/Git/data/bin/install_test_db.sh

它似乎试图在我的机器上运行脚本,而不是我试图从中调用它的实际容器。

关于为什么会发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:1)

首先,试试passing a command to your sh shell

docker-compose run --rm web sh -c "/data/bin/install_test_db.sh" 

或者:

docker-compose run --rm web "sh -c /data/bin/install_test_db.sh" 

这样可以避免主机shell(git bash)将绝对路径(从' /')解释为Git安装路径中的路径。

这会将/data/...作为参数传递给容器中执行的shell。

注意:如果您使用的是Docker for Windows(意思是不是 VirtualBox,而是HyperV),那么您根本不需要git bash

从常规CMD(docker.exe%PATH%尝试使用相同的命令,为您设置Docker for Windows)

vonc@VONCAVN7 C:\Users\vonc
> where docker
C:\Program Files\Docker\Docker\Resources\bin\docker.exe

如果您需要来自同一个CMD会话的类似Linux的命令,那么请添加git路径:

set GH=C:\path\to\git
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%