繁体   English   中英

docker 找不到用于在 nestjs 中使用 typeorm 运行后端的 main.js 文件

[英]docker unable to find the main.js file for running the backend in nestjs with typeorm

docker-compose.yml

version: '3.7'
services: 
    backend:
        container_name: backend
        build:
            context: backend
            dockerfile: Dockerfile
        ports: 
            -   8000:8000
        volumes:
            -   ./backend:/app
        depends_on: 
            -   pgdb
        
    pgdb:
        container_name: pgdb
        image: postgres
        environment: 
            POSTGRES_PASSWORD: 'admin'
            POSTGRES_USER: 'postgres'
            POSTGRES_DB: 'ambassador'
        ports: 
            -   5432:5432
        volumes:
        - db-data:/var/lib/postgresql

volumes: 
    db-data:

文件

FROM node:16 
WORKDIR /app
COPY package.json .
COPY yarn.lock .
RUN yarn install
COPY . .
RUN yarn build
EXPOSE 8000
CMD ["yarn", "start:prod"]

后端 -> src -> main.ts

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  const configService: ConfigService = app.get<ConfigService>(ConfigService);
  const port = configService.get('PORT');    //PORT=8000 in .env
  await app.listen(port);
  Logger.log(`Listening on http://localhost:${port}`);
}
bootstrap();

我不断收到错误

错误:找不到模块“/app/dist/main”

如果我在这里错了,请纠正我。 按照 Dockerfile 说明,我在名为“app”的容器中添加了一个新的工作目录,将 package.json 和 lock 文件复制到 app 并运行安装以获取 node_modules。 然后将所有内容从后端目录复制到 docker 中的应用程序目录。 之后运行 yarn build 将创建一个 dist 文件夹,该文件夹将包含一个我需要访问的 main.js 文件。 然而我得到了那个错误。 我在本地机器上运行 yarn build 并看到 dist 有 ormconfig 文件和包含 main.js 的 src 子目录。 因此,我将 package.json 中“start:prod”的值更改为“node dist/src/main”,但即使如此也显示

错误:找不到模块“/app/dist/src/main”

请赐教我在哪里或哪里我错了?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM