【问题标题】:WSL, bash, Docker: "unable to prepare context"WSL、bash、Docker:“无法准备上下文”
【发布时间】:2018-04-21 13:48:53
【问题描述】:

在使用 WSL 和 bash 关注 this tutorial 时,我得到:

~$ cd /tmp/docker-nginx-test

/tmp/docker-nginx-test$ ls -la
total 0
drwxrwxrwx 0 george george 4096 Apr 21 06:27 .
drwxrwxrwt 0 root   root   4096 Apr 21 06:02 ..
-rw-rw-rw- 1 george george   18 Apr 21 06:27 Dockerfile

/tmp/docker-nginx-test$ docker.exe build /tmp/docker-nginx-test
unable to prepare context: path "/tmp/docker-nginx-test" not found

还有:

/tmp/docker-nginx-test$ docker.exe build  ./Dockerfile
unable to prepare context: path "./Dockerfile" not found
/tmp/docker-nginx-test$ ls -al ./Dockerfile
-rwxrwxrwx 1 george george 18 Apr 21 06:27 ./Dockerfile

与:

$ docker.exe --version
Docker version 18.03.0-ce, build 0520e24

【问题讨论】:

  • 你试过docker.exe build .吗?
  • @Cyclonecode 使用docker.exe build . 我得到unable to prepare context: unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx G:\Documents\workspace\docker\Dockerfile: The system cannot find the file specified. 该文件Dockerfile 在该目录中不存在。
  • @Cyclonecode 使用(不是无限的)猴子方法,这有效:/tmp/docker-nginx-test$ docker.exe build ./tmp/Dockerfile。我根本不清楚为什么。在 Windows 中,存在G:\Documents\workspace\docker\tmp\Dockerfile。看来我以某种方式创建了一个从/tmp/docker-nginx-test/tmp/Dockerfile 的符号链接。完全不清楚我是怎么做到的。是时候回顾历史了。
  • 我想知道问题是否来自教程的说明mkdir /tmp/docker-nginx-test && cd $_。如果我一直在 Linux 环境中工作,一切都会好起来的。使用 WSL 和 bash,我没有在明确为“/tmp/docker-nginx-test”的目录中工作。

标签: docker windows-subsystem-for-linux


【解决方案1】:

对于上述教程,使用 WSL 和 bash 的成功方法是:

$ mkdir docker-nginx-test
$ cd docker-nginx-test
$ docker-compose.exe down
$ docker-compose.exe build --pull --no-cache
$ docker-compose.exe -f docker-compose.yml up -d --remove-orphans

【讨论】:

    【解决方案2】:

    我发现问题在于我只使用了 Linux 路径 (/home/user/project/Dockerfile),但我必须使用存储 WSL 发行版的 Windows 文件路径,然后使用 rootfs 下的路径并转义反斜杠。像这样:

    docker.exe build -t 
    C:\\Users\\username\\Ubuntu1804WSL\\CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.817.0_x64__79rhkp1fndgsc\\rootfs\\home\\user\\scratch\\project
    

    这为我解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 2016-06-01
      • 2023-03-24
      • 1970-01-01
      • 2019-01-05
      • 2022-07-20
      相关资源
      最近更新 更多