o2o网站建设信息,中国4a广告公司有哪些,个人可以做招聘网站吗,网络营销型网站目录
关键的命令行
排查分析
原因
附#xff1a;Dockerfile构建时打印命令输出的办法 关键的命令行
WORKDIR /app
COPY record .
RUN cd record xxx
执行到RUN时报了错#xff1a; /bin/sh: 1: cd: cant cd to /app/record 并且宿主机当前目录也准备好了re…目录
关键的命令行
排查分析
原因
附Dockerfile构建时打印命令输出的办法 关键的命令行
WORKDIR /app
COPY record .
RUN cd record xxx
执行到RUN时报了错 /bin/sh: 1: cd: cant cd to /app/record 并且宿主机当前目录也准备好了record目录此目录下有三个文件。
目的是拷贝record目录本身包含了其子文件夹和子文件到当前路径下结果拷贝成了record下的所有文件直接放到了当前路径。
排查分析
为了验证当前目录下record到底有哪些东西打印一下看看
RUN ls -al ./record
结果也报错 ls: cannot access ./record: No such file or directory 说明确实没有 record 这个目录。
然后把 RUN ls -al record 改成 RUN ls -al . 直接看当前目录最终才发现端倪在执行COPY record .这一行时实际上是把record目录下的所有内容拷贝到了当前目录而不是把record 也就是说在执行COPY后当前目录下是record下三个文件因此cd record或ls命令查看record当然不会成功了。
举个例子在某个机器上某目录下有两个文件夹
./aaa/hello
./bbb
上面出问题时的拷贝情形等价于
cp -r aaa/* bbb
而不是
cp -r aaa bbb 或 cp -r aaa/ bbb
原因及解决
在Dockerfile中COPY并不支持直接将源路径目录作为一个整体移动或复制到新路径它仅能复制源路径下的内容。
如果要实现后者则 可以直接将源路径换成. 即
COPY . 目标路径
或使用cp 命令完成
RUN cp -r record .
因此为避免这种不存在的路径问题出现就要保证拷贝到合适的位置、并且后续的命令处理也是正确的位置。
如果此类文件和路径问题总出现建议多打印ls看看。
附Dockerfile构建时打印命令输出的办法
在执行构建时加如下参数
--progressplain --no-cache