代码之家  ›  专栏  ›  技术社区  ›  Frank Neblung

docker exec--workdir在git bash中不起作用

  •  0
  • Frank Neblung  · 技术社区  · 3 年前

    我在Windows10下运行DockerDesktop4.19.0。

    有一个容器正在运行,我可以用它执行命令 docker exec 从…起 git-bash , cmd 以及Ubuntu-on-WSL2。

    #git-bash
    me@machine MINGW64 ~
    $ docker exec 3eef5ce3f69d pwd
    /
    
    #cmd
    C:\Users\me>docker exec 3eef5ce3f69d pwd
    /
    
    #ubuntu
    frank@machine:~$ docker exec 3eef5ce3f69d pwd
    /
    

    到目前为止,一切都很好。当我想更改WORKDIR时,问题就出现了。

    当它工作时 cmd 和 ubuntu ,从运行时失败 git bash 。但是为什么呢?

    #git-bash
    me@machine MINGW64 ~
    $ docker exec --workdir=/tmp 3eef5ce3f69d pwd
    OCI runtime exec failed: exec failed: Cwd must be an absolute path: unknown
    
    #cmd
    C:\Users\me>docker exec --workdir=/tmp 3eef5ce3f69d pwd
    /tmp
    
    #ubuntu
    frank@machine:~$ docker exec --workdir=/tmp 3eef5ce3f69d pwd
    /tmp
    
    1 回复  |  直到 3 年前
        1
  •  2
  •   BMitch    3 年前

    Gitbash通过路径扩展来做一些非标准的事情,比如 /bin/sh 映射回Git-bash安装目录。要禁用该行为,请使用前导双斜杠( //path/to/file ):

    docker exec --workdir=//tmp 3eef5ce3f69d pwd
    
        2
  •  0
  •   Novikov    3 年前

    我将为双斜杠再添加一个用例。 如果需要使用 ${pwd} 在Windows上使用gitbash的docker卷路径中。

    docker run -it -v "/$(pwd)":/usr/src/app -w //usr/src/ maven mvn clean package
    
    推荐文章