我想创建一个Dockerfile,将所有的package.json
文件复制到镜像中,但保留文件夹结构。
以下是我的代码:
FROM node:15.9.0-alpine as base
WORKDIR /app/
COPY ./**/package.json ./
CMD ls -laR /app
运行命令: sudo docker run --rm -it $(sudo docker build -q .)
但它只会复制一个package.json
文件并将其放置在根目录(/app
)中。
这是我正在进行测试的目录:
├── Dockerfile
├── t1
│ └── package.json
└── t2
└── ttt
├── b.txt
└── package.json
我希望它在容器内看起来像这样:
├── Dockerfile
├── t1
│ └── package.json
└── t2
└── ttt
└── package.json
npm install
缓存。在我的仓库中,我使用lerna和lerna-dockerize创建一个单一的Dockerfile,并为每个包创建构建阶段。但是我想在第一个阶段安装所有依赖项,这样我就不需要在每个微服务中重新下载它们。 - CY-ODCOPY --from=an-earlier-stage
并且复制的特定文件未被修改,则不会使缓存失效。虽然我没有尝试过这种方法。 - David Maze