在 RH 7.2 64 位上运行 docker 1.12.1;
docker 总体来说运行良好;我的命令可以运行容器;或者导入档案...一切都很好。
但是当我在这里尝试这个时:
/data $ docker build -t foo/bar:1
我得到:
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /data/Dockerfile: no such file or directory
然后我尝试:
/data $ lstat Dockerfile
bash: lstat: command not found...
Similar command is: 'stat'
/data $ stat Dockerfile
stat: cannot stat ‘Dockerfile’: No such file or directory
但
/data $ stat /data/Dockefile
File: ‘/data/Dockefile’
Size: 471 Blocks: 8 IO Block: 4096 regular file
Device: fd03h/64771d Inode: 127 Links: 1
Access: (0600/-rw-------) Uid: (1125706/guenthne) Gid: ( 600/ gloadl)
Access: 2016-09-05 16:37:42.835090097 +0200
Modify: 2016-09-05 16:37:42.835090097 +0200
Change: 2016-09-05 16:37:42.835090097 +0200
Birth: -
需要明确的是:当我使用相同的命令;以及相同的在我的本地 Ubuntu Linux 上运行 dockerfile 时,一切都运行正常。/数据不是符号链接;但我认为:它有黏位设置。不幸的是,该系统上我有写入权限的所有目录(/data、/home 和 /tmp)都是粘性的。
问题是:
- 知道是什么原因导致了这个问题吗?
- 当然,更重要的是:解决方案,或者至少是解决方法?
答案1
在这里发布我的问题的答案;以防有人意外遇到同样的问题;因为这与 stat、lstat 或任何东西都无关。
问题很简单拼写错误:将工作的 Dockerfile 复制到我的远程构建服务器时,我搞砸了,并将文件命名为文件代替Dockerfile。
因此 Docker 给出了正确的消息:
无法准备上下文:无法评估 Dockerfile 路径中的符号链接:lstat/data/Dockerfile:没有此文件或目录
但不幸的是,“上下文/符号链接”的前缀只是具有误导性。