所以我正在运行一个调用的脚本:
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
它似乎试图在我的机器上运行脚本,而不是我试图从中调用它的实际容器。
关于为什么会发生这种情况的任何想法?
答案 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%