Docker没有将子目录复制到容器中

Docker没有将子目录复制到容器中,docker,Docker,我有以下目录结构 |-Dockerfile |-README.md |-angula.json |-package.json |-... |-src |-index.html |-main.ts |-... |app |-app.component.html |... 现在,我希望在启动时将所有内容复制到一个容器中。为此,我将以下内容放入Dockerfile: From node:12.15.0-alpine RUN mkdir -p /app W

我有以下目录结构

|-Dockerfile
|-README.md
|-angula.json
|-package.json
|-...
|-src
   |-index.html
   |-main.ts
   |-...
   |app
     |-app.component.html
     |...
现在,我希望在启动时将所有内容复制到一个容器中。为此,我将以下内容放入Dockerfile:

From node:12.15.0-alpine

RUN mkdir -p /app
WORKDIR /app

COPY package.json /app/

RUN ["npm","install"]

COPY . /app

EXPOSE 4200/tcp

CMD ["npm", "start", "--", "--host", "0.0.0.0", "--poll", "500"]
当我现在构建并运行Dockerfile时,我遇到了以下问题:目录
src
及其所有子目录都没有被复制

当我运行
docker exec-it[container name]sh
并键入
sh
时,与Dockerfile位于同一目录中的所有文件都在那里。但是,如果我进入
src
文件夹,它是空的


我希望通过
拷贝可以实现这一点/app
我正在将完整文件夹及其所有子目录复制到容器中。为什么不是这样?我错过了什么

这是一个非常愚蠢的错误。。。当我挂载
src
目录时,我使用了
${pwd}
而不是
$(pwd)
,这会导致空文件夹,即使我以前复制过。

您的Dockerfile旁边有.dockrignore吗?在复制命令之后添加
运行ls-l/app/src
,并重建图像。检查docker build命令的输出。你看到你的src目录的内容了吗?还有,您用来启动容器的docker run命令是什么?如何启动容器?你有
.dockringnore
文件吗?@Mihai@davidmaze我不使用-dockringnore文件。我正在使用以下命令来构建和运行容器:
sudo docker builded-t mean app
sudo docker run-it--rm-p 4200:4200-v${pwd}/src:/app/src mean app
您不需要
-v${pwd}/src:/app/src
,因为您已经复制了图像中的所有内容。@Mihai我知道,但我不想每次更改代码时都重新启动容器。还是你认为这是问题的根源?