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我知道,但我不想每次更改代码时都重新启动容器。还是你认为这是问题的根源?