为什么Docker COPY对单个文件和目录的处理方式不同?

问题描述 投票:0回答:1

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

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

first DockerFile

COPY . develop
WORKDIR develop

但是如果我要COPYpackage.json下一条命令,我将遇到错误。

second DockerFile

COPY package.json develop
WORKDIR develop

错误消息:Cannot mkdir: /develop is not a directory

我知道如何使用以下命令对我的项目进行docker化。

WORKDIR develop
COPY package.json .

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

我在RUN ls命令之后也使用了COPY,并在两种情况下都发现了develop目录的产生。

docker dockerfile docker-image
1个回答
0
投票

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

develop之前使用/,它应该可以工作。

FROM alpine
COPY temp.txt /develop/
WORKDIR develop
© www.soinside.com 2019 - 2024. All rights reserved.