为什么 docker 工作目录不受影响

Why docker working directory isn't affected

如你所见,我有一个名为 node-web-app 的目录,我有两个目录

这是我的Dockerfile

FROM node:10

WORKDIR /d/project/node-web-app/workdir

COPY package.json ./
COPY yarn.lock ./
RUN yarn

COPY . .

EXPOSE 8080

CMD [ "yarn", "start" ]

据我了解此命令COPY RUN CMD 将在指定的工作目录中执行

(在我的例子中,名为 workdir 的工作目录是 node-web-app 中的第二个目录,它的路径是 /d/project/node-web-app/workdir


当我从 Dockerfile 构建映像时,构建成功完成,之后我检查了指定的工作目录 (/d/project/node-web-app/workdir)。 问题是它没有 app 应该使用 COPY 命令复制的文件。

我的问题是这个问题:docker中的错误还是我对WORKDIR命令的理解有误?

你的 docker 文件一切正常 您需要检查 docker 容器

首先运行容器

docker run -it -d --name test yourImage

现在访问 docker 容器

docker exec -it test bash

现在我们进入docker容器查看当前目录下的工程文件

ls 

您将看到您的项目文件

尝试下面这个应该可以工作,因为它位于 d: 驱动器:

WORKDIR D:\project\node-web-app\workdir 

参考:https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-docker/manage-windows-dockerfile