我通常为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
我该如何解决?
答案 0 :(得分:1)
如果您在节点应用程序中使用打字稿,请按照以下说明进行操作。
请在“ tsconfig.json”的 compilerOptions 部分下添加以下条目
tsconfig.json
**"outDir": "./dist/"**
package.json-也添加以下脚本。
"scripts": { "build": "tsc" }
现在,重新运行“ npm run build”。您将看到dist文件夹。
答案 1 :(得分:0)
尝试忽略“tsconfig.tsbuildinfo”文件。 不要将此文件复制到 docker 容器中。