我通常为Java / Go应用程序编写Dockerfile,这是我第一次遇到这样的情况:我必须为已经存在(并且正在运行生产)的Node.js应用程序编写Dockerfile。根据我对过去几天获得的Node.js的一点了解,在构建带有源代码的Node.js项目之后,会生成 dist 文件夹(如果我错了,请纠正我)。因此,我有兴趣将父Docker镜像的 dist 文件夹复制到子Docker镜像。
但是,将所有内容从应用程序复制到父Docker镜像(第6行)并运行'npm run build'命令后,不会为我生成dist文件夹(请注意,正在生成 node_modules 和package-lock.json )。
我的Dockerfile如下:
FROM node:10-alpine as BUILD
WORKDIR /src
COPY package*.json /src
RUN apk add --update --no cache \
python \
make \
g++
RUN npm install
COPY . /src
RUN npm run build
我该如何解决?
最佳答案
如果您在节点应用程序中使用 typescript ,请按照以下说明进行操作。
请在“tsconfig.json”的 CompilerOptions 部分下添加以下条目
tsconfig.json
**"outDir": "./dist/"**
package.json - Add the below script too.
"scripts": { "build": "tsc" }
现在,重新运行“npm run build”。您将看到dist文件夹。
关于node.js - 在Dockerfile中进行npm构建时不会生成'dist'文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59693994/