我有一个前端项目,其中包含package.json。(例如,想象create-react-app)

当我运行以下命令时,一切正常,没有错误。
first DockerFile

COPY . develop
WORKDIR develop

但是如果我想要COPYpackage.json next命令,我将遇到错误。
second DockerFile
COPY package.json develop
WORKDIR develop

错误消息:Cannot mkdir: /develop is not a directory
我知道如何使用以下命令对我的项目进行Docker化。
WORKDIR develop
COPY package.json .

我只是想知道为什么第一个Dockerfile有效而第二个不起作用。

我还在RUN ls命令之后使用了COPY,并找出了两种情况下develop目录已生成的情况。

最佳答案

这是因为COPY package.json develop被指示以的形式将packages.json复制到容器中。因此下一个指令WORKDIR失败,因为开发不是目录而是文件。

之前和之后使用 / 开发,它应该可以工作。

FROM alpine
COPY temp.txt /develop/
WORKDIR develop

关于docker - 为什么Docker COPY在单个文件和目录下的工作方式有所不同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58421139/

10-12 23:45