【发布时间】:2021-01-29 16:15:29
【问题描述】:
我需要对一个使用 webpack 的 nodejs 应用程序进行 dockerize。我在下面有这个脚本:
"scripts": {
"start": "cross-env NODE_ENV=development webpack-dev-server --open webpack --env.envConfig=hello --config configs/webpack.dev.js ",
"build-dev": "cross-env NODE_ENV=development webpack --env.project=rm --env.envConfig=hello --env.publicPath=/ --config configs/webpack.dev.js",
"build": "cross-env NODE_ENV=production webpack --env.project=rm --env.envConfig=hello --env.publicPath=/ --config configs/webpack.prod.js",
},
这是我的 docker 代码 sn-p
FROM node:10-alpine as builder
# copy the package.json to install dependencies
COPY . /build
WORKDIR /build
# Install the dependencies and make the folder
RUN npm install && npm run build
但是,每当我执行docker run 时,我想在npm run build 和npm run build-dev 之间进行选择。可能吗?如果没有,我可以在 docker run 上传递 webpack 选项吗?
【问题讨论】:
-
不,您不能在它们之间进行选择。图像是使用这些命令构建的。但是您可以做的是稍后创建运行命令,然后再创建另一个命令。有时它被用作构建层和代码执行。有时一个层来运行测试等等。
-
您可以在构建 docker 映像后运行任何命令...但文件只会在该容器存在时存在。
docker run npm builddocker run npm build-dev。也许您想选择要构建的图像?而不是构建镜像后运行什么命令。