我正在开发一个 NestJS 项目,复制我的资产在我的 Mac 上运行良好。但是,一旦我将其 dockerize 它将不起作用。
巢cli.json
{
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"compilerOptions": {
"assets": [
"**/*.hbs",
"**/*.css",
"**/*.jpg",
"**/*.png",
"**/*.jpeg"
],
"watchAssets": true
}
}
Dockerfile:
FROM mhart/alpine-node:latest
RUN npm install pm2 -g
COPY backend /var/www/backend
COPY process.json /var/www
WORKDIR /var/www
#RUN npm i -g @nestjs/cli (tried with and w/out -> no difference)
RUN cd ./backend && npm i --legacy-peer-deps && npm run build
# Expose ports
EXPOSE 80
CMD ["pm2-runtime", "./backend/main"]
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es2017",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true
}
}
tsconfig.build.json
npm{
"extends": "./tsconfig.json",
"exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
}
我没有收到任何构建错误,我已经在我的 Mac 上手动复制了这些步骤,并且所有内容都被复制了。当我进入 docker 映像并手动运行 buld 步骤时,它可以正常工作,但同样不会复制任何资产。
我的资产位于不同的模块和服务文件夹中,并且希望以这种方式保留它 - 所以我不是在寻找一个简单的构建后复制目录解决方案:)
我尝试过不同的linux dist。和节点版本 - 我不确定还有什么要检查的