代码之家  ›  专栏  ›  技术社区  ›  Duy Huỳnh Nguyễn Tuấn

我正试图用mongodb将我的nestjs项目固定化,但package.json有问题

  •  0
  • Duy Huỳnh Nguyễn Tuấn  · 技术社区  · 2 年前

    这是我在nestjs项目中的Dockerfile,位于nestjss文件夹的根目录

    FROM node:21 AS production
    
    ARG NODE_ENV=production
    ENV NODE_ENV=${NODE_ENV}
    
    WORKDIR /usr/src/api
    
    COPY package*.json ./
    RUN npm install --global @nestjs/cli
    RUN npm install --only=production
    RUN apt-get -q update && apt-get -qy install netcat-openbsd
    RUN npm install
    COPY . .
    
    RUN npm run build
    
    CMD ["sh", "-c", "npm run start:prod"]
    
    

    这是我在项目根目录下的docker-compose.yml文件:

    version: "3.8"
    
    services:
      mongodb:
        image : mongo:latest
        container_name: mongodb
        volumes:
          - ./database:/data/db
        ports:
          - 27017:27017
        networks:
          - shared-network
        restart: always
    
      nginx:
        image: nginx:latest
        container_name: nginx-prod
        volumes:
          - ./nginx/nginx.conf:/etc/nginx/nginx.conf
        ports:
          - 80:80
        command: /bin/sh -c "nginx -g 'daemon off;'"
        depends_on:
          - api-prod
          - app-prod
        networks:
          - shared-network
    
      api-prod:
        container_name: nestjs_api_prod
        image: nestjs-api-prod:1.0.0
        build:
          context: nestjs-cars-app
          target: production
          dockerfile: Dockerfile
        volumes:
          - .:/usr/src/api
          - /usr/src/api/node_modules
        command: npm run start:prod
        depends_on:
          - mongodb
        networks:
          - shared-network
        ports:
          - 9000:9000
        restart: unless-stopped
        healthcheck:
          test: ["CMD", "curl", "http://api-prod:9000"]
          interval: 5s
          timeout: 3s
          retries: 6
    
      app-prod:
        container_name: react_app_prod
        image: react-app-prod:1.0.0
        build:
          context: my-app
          target: production
          dockerfile: Dockerfile
        command: npm run start:prod
        ports:
          - 3000:3000
        networks:
          - shared-network
        restart: unless-stopped
    
    networks:
      shared-network:
        driver: bridge
    
    

    我尝试过docker compose构建,这没关系。但当我尝试docker compose-up时,我不断收到这个错误:

    nestjs_api_prod|npm ERR!代码ENOENT nestjs_api_prod|npm ERR!系统调用打开 nestjs_api_prod|npm ERR!路径/usr/src/api/package.json nestjs_api_prod|npm ERR!错误号-2 nestjs_api_prod|npm ERR!enoent无法读取package.json:错误:enoent:没有这样的文件或目录,打开“/usr/src/api/package.json” nestjs_api_prod|npm ERR!enoent这与npm找不到文件有关。 nestjs_api_prod|npm ERR!enoent nestjs_api_prod| nestjs_api_prod|npm ERR!此运行的完整日志可在以下位置找到:/root/.npm/_logs/2024-01-11T01_00_18_051Z-debug-0.log nestjs_api_prod退出,返回代码254

    有关更多信息,这是我的项目目录: enter image description here

    0 回复  |  直到 2 年前
    推荐文章