【发布时间】:2022-05-10 23:42:26
【问题描述】:
我在 Dockerfile 中描述了执行 npm 脚本的命令:
WORKDIR /usr/src/app/server
CMD ["npm", "run", "build"]
这只是一个构建我的项目的 webpack 脚本
"scripts": {
"build": "webpack --mode development --open",
"watch": "webpack --mode development --open --watch",
"prod": "webpack --mode production"
},
在构建期间我可以看到该命令已执行:
Step 23/28 : WORKDIR /usr/src/app/server
---> Running in e85934faf65a
Removing intermediate container e85934faf65a
---> 9f14cb58deca
Step 24/28 : CMD [ "npm", "run", "build" ]
---> Running in 6d3157d2e962
Removing intermediate container 6d3157d2e962
---> 9237c0a03fe9
Step 25/28 : WORKDIR /usr/src/app
---> Running in 3888c83ed88f
我希望得到生成的 dist 文件夹。但我可以看到该文件夹不是在容器内生成的
root@82a01ee6d1fe:/usr/src/app/server# ls
package-lock.json package.json src tsconfig.json webpack.config.js
如何正确执行 Docker 文件中的 npm 脚本?
我做错了什么?
【问题讨论】:
-
您的屏幕截图中的“dist”目录是在主机上而不是在容器中吗?这是否意味着您正在运行带有卷挂载的容器?
-
是的,在屏幕截图上它不在容器中。我没有安装卷。我想在容器内生成它
-
屏幕截图不可搜索,它们不能提出好的问题或答案。
-
@UlrichEckhardt 感谢您的通知。改为文字