下面的指令是正确构建在MacOS码头引擎18.04,而同样的指令失败时,由一个詹金斯集装箱运行码头(码头码头,dind,盗梦空间)。为什么是错误的原因和解决办法是什么?
基于MacOS的本地码头建设
Step 12/16 : RUN find / -name "spring-cloud-config-server*.jar"
! -name "*sources*" -exec cp -t /tmp {} + &&
mkdir /runtime &&
mv /tmp/spring-cloud-config*.jar /runtime/config-service.jar &&
rm -f /*.jar
---> Using cache码头工人詹金斯建造
Step 12/16 : RUN find / -name "spring-cloud-config-server*.jar"
! -name "*sources*" -exec cp -t /tmp {} + &&
mkdir /runtime &&
mv /tmp/spring-cloud-config*.jar /runtime/config-service.jar &&
rm -f /*.jar
---> Running in f64908a07aa1
find: ‘/proc/1/map_files’: Operation not permitted
find: ‘/proc/7/map_files’: Operation not permitted
The command '/bin/sh -c find / -name "spring-cloud-config-server*.jar"
! -name "*sources*" -exec cp -t /tmp {} + && mkdir /runtime &&
mv /tmp/spring-cloud-config*.jar /runtime/config-service.jar &&
rm -f /*.jar' returned a non-zero code: 1
script returned exit code 1发布于 2018-04-13 20:11:43
解决方案
find /,因为它涉及其他
解决上述问题的办法如下:
RUN mkdir /runtime && \
find /tmp -name "spring-cloud-config-server*.jar" ! -name "*sources*" -exec cp -t /runtime {} + && \
mv /runtime/spring-cloud-config*.jar /runtime/config-service.jar && \
rm -f /tmp/*.jar解释
答案在于以下概念:
dind中运行的停靠容器正在添加只有主机操作系统允许的进程。find /时,该命令还扫描由dind进程拥有的dir /proc。dind相比不会泄漏额外的dind。https://stackoverflow.com/questions/49823949
复制相似问题