为什么Docker COPY对单个文件和目录的工作方式不同?
我有一个前端项目,其中包含为什么Docker COPY对单个文件和目录的工作方式不同?,docker,dockerfile,docker-image,Docker,Dockerfile,Docker Image,我有一个前端项目,其中包含package.json。(例如,想象一下createreact-app) 当我在下面运行命令时,一切正常,没有错误 first DockerFile COPY . develop WORKDIR develop COPY package.json develop WORKDIR develop 但如果我想要COPY,package.json下一个命令,我将面临一个错误 second DockerFile COPY . develop WORKDIR develop
package.json
。(例如,想象一下createreact-app
)
当我在下面运行命令时,一切正常,没有错误
first DockerFile
COPY . develop
WORKDIR develop
COPY package.json develop
WORKDIR develop
但如果我想要COPY
,package.json
下一个命令,我将面临一个错误
second DockerFile
COPY . develop
WORKDIR develop
COPY package.json develop
WORKDIR develop
错误消息:无法mkdir:/develop不是目录
我知道如何使用下面的命令将我的项目固定
WORKDIR develop
COPY package.json .
我只是想知道为什么第一个Dockerfile可以工作而第二个不能工作
我还使用了
COPY
命令之后运行ls,并找出在这两种情况下develope
目录都已生成。这是因为COPY package.json develope
被指示将packages.json作为develope复制到容器中。因此,下一个指令WORKDIR失败,因为develope不是一个目录,而是一个文件
在之前和之后使用/开发,它应该会起作用
FROM alpine
COPY temp.txt /develop/
WORKDIR develop
这是因为
COPY package.json develope
被指示将packages.json作为develope复制到容器中。因此,下一个指令WORKDIR失败,因为develope不是一个目录,而是一个文件
在之前和之后使用/开发,它应该会起作用
FROM alpine
COPY temp.txt /develop/
WORKDIR develop
仅在
开发
之前添加/
没有帮助,但是在开发
之前和之后添加/
与您提到的代码一样有效。谢谢。更新了评论。仅在develope
之前添加/
没有帮助,但是在develope
之前和之后添加/
与您提到的代码一样有效。谢谢。更新了评论。