3

我正在开发一个 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。和节点版本 - 我不确定还有什么要检查的

4

0 回答 0