在Dockerfile中进行npm构建时不会生成'dist'文件夹

时间:2020-01-11 11:33:28

标签: node.js docker npm

我通常为Java / Go应用程序编写Dockerfile,这是我第一次遇到这样的情况:我必须为已经存在(并且正在运行生产)的Node.js应用程序编写Dockerfile。根据我对过去几天所获得的Node.js的一点了解,在构建带有源代码的Node.js项目后会生成 dist 文件夹(如果我这里是错误的)。因此,我有兴趣将 dist 文件夹从父Docker映像复制到子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

我该如何解决?

2 个答案:

答案 0 :(得分:1)

如果您在节点应用程序中使用打字稿,请按照以下说明进行操作。

请在“ tsconfig.json”的 compilerOptions 部分下添加以下条目

tsconfig.json

**"outDir": "./dist/"**

package.json-也添加以下脚本。

"scripts": { "build": "tsc" }

现在,重新运行“ npm run build”。您将看到dist文件夹。

答案 1 :(得分:0)

尝试忽略“tsconfig.tsbuildinfo”文件。 不要将此文件复制到 docker 容器中。