在 docker 生产服务器上编译 webpack
Compile webpack on docker production server
我正在为我的 React/Redux 应用程序设置 docker,我想知道如何以这种方式设置它,在生产环境中,在容器设置中,webpack 编译我的整个代码生产配置,然后它会自行删除,或类似的东西。因为我的项目唯一需要的是生产代码,以及一个为其提供服务的简单节点服务器。
我不确定我是否解释得很好,因为docker和webpack对我来说仍然是新事物。
编辑:
或者,我什至可以使用 apache 服务器提供所有服务,但我希望在 运行 docker-compose.
时编译和设置所有内容
如果我理解正确,您想在 docker 构建期间的 npm 运行 构建之后从映像中删除节点开发依赖项。
你可以做到,但有一个小技巧你必须知道。
Dockerfile 中的每一行都会在映像中产生一个新步骤,并与映像一起推送。
所以,如果你在你的 Dockerfile 中执行:
RUN npm install # Install dev and prod deps
RUN npm run build # Execute your webpack build
RUN npm prune --production # Trash all devDependencies from your node_modules folder
您的图片大小将包含:
- 第一次 npm 安装
- npm 运行 构建
- npm p运行e
的结果
你的图片会比原来大 :
RUN npm install # Install dev and prod deps
RUN npm run build # Execute your webpack build
其中包含:
- 第一次 npm 安装
- npm 运行 构建
要避免此问题,您必须在 docker 文件中执行以下操作:
RUN npm install && npm run build && npm prune --production
这样你会得到一个简约的图像。随着 :
- npm 运行 构建
- npm p运行e
的结果
您的最终 Dockerfile 将是某种形式:
FROM node:7.4.0
ADD . /src
RUN cd /src && npm install && npm run build && npm prune --production # You can even use npm prune without the --production flag
ENV NODE_ENV production
我正在为我的 React/Redux 应用程序设置 docker,我想知道如何以这种方式设置它,在生产环境中,在容器设置中,webpack 编译我的整个代码生产配置,然后它会自行删除,或类似的东西。因为我的项目唯一需要的是生产代码,以及一个为其提供服务的简单节点服务器。
我不确定我是否解释得很好,因为docker和webpack对我来说仍然是新事物。
编辑: 或者,我什至可以使用 apache 服务器提供所有服务,但我希望在 运行 docker-compose.
时编译和设置所有内容如果我理解正确,您想在 docker 构建期间的 npm 运行 构建之后从映像中删除节点开发依赖项。
你可以做到,但有一个小技巧你必须知道。 Dockerfile 中的每一行都会在映像中产生一个新步骤,并与映像一起推送。 所以,如果你在你的 Dockerfile 中执行:
RUN npm install # Install dev and prod deps
RUN npm run build # Execute your webpack build
RUN npm prune --production # Trash all devDependencies from your node_modules folder
您的图片大小将包含:
- 第一次 npm 安装
- npm 运行 构建
- npm p运行e 的结果
你的图片会比原来大 :
RUN npm install # Install dev and prod deps
RUN npm run build # Execute your webpack build
其中包含:
- 第一次 npm 安装
- npm 运行 构建
要避免此问题,您必须在 docker 文件中执行以下操作:
RUN npm install && npm run build && npm prune --production
这样你会得到一个简约的图像。随着 :
- npm 运行 构建
- npm p运行e 的结果
您的最终 Dockerfile 将是某种形式:
FROM node:7.4.0
ADD . /src
RUN cd /src && npm install && npm run build && npm prune --production # You can even use npm prune without the --production flag
ENV NODE_ENV production