【发布时间】:2018-03-08 17:52:27
【问题描述】:
我有一个项目,其结构基本上是这样的:(*)
my_project/
├── server/
│ ├── node_modules/
│ └── server.js
├── src/
├── node_modules/
├── Dockerfile
└── {multiple important config files for webpack and typescript etc}.json
我使用npm run build 构建项目。这会从 src/ 文件夹创建一个 dist/ 文件夹。
这是我的package.json:
"scripts": {
"prebuild": "npm run install:client && npm run install:server",
"build": "webpack",
"install:client": "npm install",
"install:server": "cd server/ && npm install"
}
最终的项目只需要这个:(**)
my_project/
├── server/
│ ├── node_modules/
│ └── server.js
└── dist/
├── webapp/
└── assets/
现在我想用这个创建一个 docker 镜像。
我有一个 Dockerfile 现在可以使用。它看起来像这样:
FROM node:boron
WORKDIR /usr/src/app
COPY package.json .
COPY . .
RUN npm run build
EXPOSE 9090
CMD [ "node", "server/server.js" ]
但据我了解,它会复制我目录中的所有内容,然后创建 dist/ 文件夹,最终 docker 映像包含所有这些:(***)
my_project/
├── server/
│ ├── node_modules/
│ └── server.js
├── src/
├── node_modules/
├── Dockerfile
├── {multiple important config files for webpack and typescript etc}.json
└── dist/
├── webapp/
└── assets/
如何将 Docker 镜像配置为仅包含 (**)
中的内容【问题讨论】:
标签: node.js docker webpack dockerfile