首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在NFS上不扩展文件*通配符

在NFS上不扩展文件*通配符
EN

Stack Overflow用户
提问于 2018-09-25 18:07:18
回答 1查看 306关注 0票数 1

我有折叠式的设置:

  • Ubuntu LTS嘉宾
  • MacBook Pro运行MacOS 10.13.5 (17F77)
  • 管理程序是VMware融合专业版8.5.9 (7098239)
  • NFS从MacBook主机导出到Ubuntu客户端。

这是/etc/exports的相关行

代码语言:javascript
运行
复制
/Users/stephenrasku/w/Edge-Agent -alldirs -mapall=501:20 edgeos-dev

我有下面的Makefile

代码语言:javascript
运行
复制
build:
    ls -l
    ls -l foo*

当我在NFS挂载的i386容器中运行它时,它会失败。我正在运行一个VMware融合:

代码语言:javascript
运行
复制
$ docker run --rm -t -v /home/stephen/some-nfs-mount:/home/edge registry.gear.ge.com/predix_edge/edge-agent-i386 "cd tmp && make"
Setting uid/gid to 501 501
ls -l
total 4
-rw-r--r-- 1 builduser builduser 26 Sep 25 17:58 Makefile
-rw-r--r-- 1 builduser builduser  0 Sep 25 17:58 bart
-rw-r--r-- 1 builduser builduser  0 Sep 25 17:58 fool
ls -l foo*
ls: cannot access 'foo*': No such file or directory
Makefile:2: recipe for target 'build' failed
make: *** [build] Error 2

如果我将存储库克隆到本机文件系统并将其绑定到容器中,则i386容器可以工作:

代码语言:javascript
运行
复制
$ docker run --rm -t -v /home/stephen/this-directory-is-not-nfs:/home/edge registry.gear.ge.com/predix_edge/edge-agent-i386 "cd tmp && make"
Setting uid/gid to 501 501
ls -l
total 8
-rw-rw-r-- 1 builduser builduser 971 Sep 26 14:21 Dockerfile-i386
-rw-rw-r-- 1 builduser builduser  26 Sep 26 15:06 Makefile
-rw-rw-r-- 1 builduser builduser   0 Sep 26 14:21 bart
-rw-rw-r-- 1 builduser builduser   0 Sep 26 14:21 fool
ls -l foo*
-rw-rw-r-- 1 builduser builduser 0 Sep 26 14:21 fool

如果我在x86_64容器中运行,它也可以在NFS上工作:

代码语言:javascript
运行
复制
$ docker run --rm -t -v /home/stephen/some-nfs-mount:/home/edge registry.gear.ge.com/predix_edge/edge-agent-x86_64 "cd tmp && make"
Setting uid/gid to 501 501
ls -l
total 4
-rw-r--r-- 1 builduser builduser 26 Sep 25 17:58 Makefile
-rw-r--r-- 1 builduser builduser  0 Sep 25 17:58 bart
-rw-r--r-- 1 builduser builduser  0 Sep 25 17:58 fool
ls -l foo*
-rw-r--r-- 1 builduser builduser 0 Sep 25 17:58 fool

i386容器是FROM i386/ubuntu:18.04x86_64容器是FROM ubuntu:18.04

除了“不要使用NFS”之外,还有什么方法可以解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2018-09-26 01:50:10

听起来通配符函数在i386映像的shell上被禁用了。

尝试set +o noglob为您的registry.gear.ge.com/predix_edge/edge-agent-i386启用它。

像下面这样的审判,就这样。

代码语言:javascript
运行
复制
# set -o noglob
# ls Doc*
ls: cannot access Doc*: No such file or directory
# set +o noglob
# ls Doc*
Dockerfile
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52504332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档