linux - docker build 无法在 **sticky** 目录中使用 Dockerfile?

标签 linux docker redhat

运行 docker 1.12.1;在 RH 7.2 64 位上。

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: -

需要说明的是:当我使用same 命令时;以及我本地 Ubuntu Linux 上的相同 dockerfile,所有这些都工作正常。不,/data 不是符号链接(symbolic link);但我想:它设置了 sticky 位。不幸的是,该系统上我具有写入权限的所有目录(/data、/home 和/tmp)都是粘性的。

问题是:

  1. 知道是什么导致了这个问题吗?
  2. 当然,更重要的是:解决方案,或者至少是解决方法?

根据要求更新:

> ls -al $(which docker)
-rwxr-xr-x 1 root root 13914136 Aug 18 07:07 /bin/docker

最佳答案

在这里发布我的问题的答案;以防万一有人不小心遇到同样的问题;因为这与 stat、lstat 或任何东西无关。

问题是一个简单的拼写错误:将工作中的 Dockerfile 复制到我的远程构建服务器时;我搞砸了,并将文件命名为 Dockerfile 而不是 Dockerfile(因此 Docker 中缺少 r)

本质上,docker 给出了正确的消息:

无法准备上下文:无法评估 Dockerfile 路径中的符号链接(symbolic link):lstat /data/Dockerfile:没有这样的文件或目录

但不幸的是,关于“上下文/符号链接(symbolic link)”的前缀只是误导。

关于linux - docker build 无法在 **sticky** 目录中使用 Dockerfile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39341327/

相关文章:

java - 在java中执行linux命令并将输出存储在变量中

docker - 无法在Redhat7上升级Docker

linux - 在 for 循环中从数组创建目录

linux - 为 CentOS 移植一个 debian 包到 YUM

linux - 如何为 Wordpress 创建一个用户来执行 FTP 操作,并为其授予适当的权限?

linux - Python 子进程(shell=True),不适用于 postgres 命令

linux - lsdev 有 mac os x 版本吗?

docker - 在 Docker : Empty reply from server 上运行 rust

google-app-engine - 托管 VM 添加到 PATH

docker - Docker构建 “no such file or directory”错误