无法使用dockerfile移动容器中的文件
我编写了一个非常简单的dockerfile,但不幸的是,在dockerfile中执行以下命令时失败:-无法使用dockerfile移动容器中的文件,docker,dockerfile,containers,Docker,Dockerfile,Containers,我编写了一个非常简单的dockerfile,但不幸的是,在dockerfile中执行以下命令时失败:- RUN ["cp -r", "node_modules/dir1/test/*", "/app"] 下面是我收到的错误消息:- OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"cp -r\": executable file not found in $
RUN ["cp -r", "node_modules/dir1/test/*", "/app"]
下面是我收到的错误消息:-
OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"cp -r\": executable file not found in $PATH": unknown
我也尝试过用“mv”命令代替“cp”,但没有成功
我不想移动整个文件夹,但要移动文件夹的所有内容。如前所述,如果我执行以下命令,它会工作,但会移动目录:-
RUN ["cp -r", "node_modules/dir1/test", "/app"]
有什么建议吗。?我试过研究许多问题,但找不到具体的解释,也找不到如何解决的答案
谢谢,
Vishesh。首先,您需要检查
cp
命令是否可用。一旦可用,您需要添加/。
,以便仅复制内容
RUN ["cp -r", "node_modules/dir1/test/.", "/app/"]
文档中的快照。
首先,您需要检查
cp
命令是否可用。一旦可用,您需要添加/。
,以便仅复制内容
RUN ["cp -r", "node_modules/dir1/test/.", "/app/"]
文档中的快照。
在类似Unix的操作系统内部,命令被分解为“单词”。当您对
RUN
、ENTRYPOINT
和CMD
指令使用JSON数组语法时,您明确地指定了这些单词是什么,它们不会被进一步分解处理
尤其是当你跑步的时候
RUN ["cp -r", "node_modules/dir1/test/*", "/app"]
它在通常的位置查找名为cp-r
的命令,其中命令名包括空格和连字符。它找不到没有空格和连字符且没有/bin/cp \-r
的/bin/cp
。如果这样做有效,它还将传递其第一个参数,该参数在文件名中包含一个*
,该参数也将失败
这里最简单的解决方案是不使用JSON数组形式。这将隐式运行一个shell(命令包装在/bin/sh-c
中),它将为您拆分单词并展开globs
RUN cp -r node_modules/dir1/test/* /app
如果不需要通配符,则需要手动将cp
和-r
拆分为单独的单词
RUN ["cp", "-r", "node_modules/dir1/test", "/app"]
在类似Unix的操作系统内部,命令被分解为“单词”。当您对
RUN
、ENTRYPOINT
和CMD
指令使用JSON数组语法时,您明确地指定了这些单词是什么,它们不会被进一步分解处理
尤其是当你跑步的时候
RUN ["cp -r", "node_modules/dir1/test/*", "/app"]
它在通常的位置查找名为cp-r
的命令,其中命令名包括空格和连字符。它找不到没有空格和连字符且没有/bin/cp \-r
的/bin/cp
。如果这样做有效,它还将传递其第一个参数,该参数在文件名中包含一个*
,该参数也将失败
这里最简单的解决方案是不使用JSON数组形式。这将隐式运行一个shell(命令包装在/bin/sh-c
中),它将为您拆分单词并展开globs
RUN cp -r node_modules/dir1/test/* /app
如果不需要通配符,则需要手动将cp
和-r
拆分为单独的单词
RUN ["cp", "-r", "node_modules/dir1/test", "/app"]
谢谢你的解释,大卫。这很有道理,并且完成了任务。谢谢你的解释,大卫。这是有道理的,可以完成工作。