Git sh.exe & Docker 运行(没有这样的文件或目录)

萨克谷科技

我遇到了一个令人困惑的问题,似乎找不到解释。

  1. 运行/usr/bin/sh.exe(这是Git for Windows提供的sh.exe)

  2. 执行以下命令: docker run alpine:edge /bin/sh -c "echo AAA"

  3. 观察错误(为了可读性,我将git-installation-path替换为git-installation-path):docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "<git-installation-path>/usr/bin/sh": stat <git-installation-path>/usr/bin/sh: no such file or directory: unknown.

我不明白为什么docker要尝试使用 sh.exe 的本地路径(来自 Git 安装的路径)

预期的结果是运行一个Alpine容器并/bin/sh -c "echo AAA"在容器内执行命令

bk2204

在 Git for Windows 中使用的 bash 版本中,使用的路径/被重写为 Windows 路径。这是因为许多 Windows 程序不处理 Unix 样式的路径,这使得更多程序可以正常工作。

但是,在您的情况下,这会导致/bin/sh被重写到 Windows 可执行文件的路径中,如果您将其传递到 Linux Docker 容器中,这显然是您不想要的。对此的解决方案是将斜杠(或至少是初始斜杠)加倍,这将告诉 shell 不要重写它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

git pull上的OSX 10.10优胜美地beta:git-sh-setup:没有这样的文件或目录

Windows cmd git bash:conda.sh没有这样的文件或目录(Windows行尾,缺少斜杠)

运行docker时没有这样的文件或目录

Docker运行命令没有这样的文件或目录

git没有这样的文件或目录

-bash:test.sh:没有这样的文件或目录

clojure.java.sh:没有这样的文件或目录

bash:config.sh:没有这样的文件或目录

./run_timer.sh:没有这样的文件或目录

如何在Windows上修复git commit:“正在等待...关闭...文件:... vim.exe:C:/ Program:没有这样的文件或目录”

没有这样的文件或目录:'docker':在本地模式下运行sagemaker studio时的'docker'

GIT说“没有这样的文件或目录”,但文件存在

GIT没有这样的标识:id_rsa:没有这样的文件或目录

Docker进行投掷查找:'':没有这样的文件或目录

Docker + Java -VSTS没有这样的文件或目录

在docker build中没有这样的文件或目录

Docker-没有这样的文件或目录

docker chmod没有这样的文件或目录

Docker 构建错误:没有这样的文件或目录

docker COPY 失败:没有这样的文件或目录

Docker Compose:.env:没有这样的文件或目录/ NodeJS

Docker - 没有这样的文件或目录(dotnetcore)

git init命令显示“没有这样的文件或目录”

git-gui--askpass:没有这样的文件或目录

Git Stat:没有这样的文件或目录

Windows中git-bash.exe和sh.exe有什么区别?

sh中没有“没有这样的文件或目录”错误,但是该文件存在吗?

sh:d2j-dex2jar.sh:没有这样的文件或目录

xcode_backend.sh:没有这样的文件或目录。我需要创建这个文件吗?