使用 docker-compose 后缺少依赖项

2023-12-10

我对 docker 还很陌生,但我终于理解了 docker-compose 和普通 docker 命令之间的区别,我想为我的开发环境部署一些容器,其中包括带有 Nest.js 的后端和 postgress 数据库(进一步向下该行我将包括一个 React 应用程序,也许还有 PGAdmin)。

当我运行它时,我的后端服务器的图像工作正常docker run但看起来有问题docker-compose缺少一些依赖项(即使它们是用npm install?).

这是我的后端服务器的 docker 文件。

FROM node:14-alpine

WORKDIR /usr/src/app

COPY . .

# If I don't install nest's cli the app won't start telling me nest was not found.
RUN npm install -g @nestjs/cli 
# Install all dependencies
RUN npm install

# package.json start script
CMD [ "npm", "run", "start:dev"]

这是我的docker-compose file.


version: '3.7'

services: 
    backend:
        container_name: nest_backend
        build: .
        volumes: 
            - .:/usr/src/app
            - /usr/src/app/node_module
        ports:
            - ${PORT}:${PORT}
        command: npm run start:dev
        env_file: 
            - .env
        networks: 
            - webnet
        depends_on: 
            - postgres
    postgres:
        container_name: postgres
        image: postgres:12
        networks: 
            - webnet
        environment: 
            POSTGRES_PASSWORD: ${RDS_PASSWORD}
            POSTGRES_USER: ${RDS_USERNAME}
            POSTGRES_DB: ${RDS_DB_NAME}
            PG_DATA: /var/lib/postgresql/data
        volumes: 
            - pgdata:/var/lib/postgresql/data
        ports:
          - 5433:5432
networks:
  webnet:
volumes:
  pgdata:

这是我检查后端映像容器上的日志时的输出。

11:38:22 PM] Starting compilation in watch mode...

node_modules/@types/react-dom/index.d.ts:27:8 - error TS2307: Cannot find module 'react' or its corresponding type declarations.

27 } from 'react';
          ~~~~~~~

src/app.module.ts:1:24 - error TS2307: Cannot find module '@nestjs/common' or its corresponding type declarations.

1 import { Module } from '@nestjs/common';
                         ~~~~~~~~~~~~~~~~

src/app.module.ts:3:31 - error TS2307: Cannot find module '@nestjs/typeorm' or its corresponding type declarations.

3 import { TypeOrmModule } from '@nestjs/typeorm';
                                ~~~~~~~~~~~~~~~~~

src/app.module.ts:6:30 - error TS2307: Cannot find module '@nestjs/config' or its corresponding type declarations.

6 import { ConfigModule } from '@nestjs/config';
                               ~~~~~~~~~~~~~~~~

src/app.module.ts:10:26 - error TS2307: Cannot find module '@ntegral/nestjs-s3' or its corresponding type declarations.

10 import { S3Module } from '@ntegral/nestjs-s3';

我的项目正在使用带有纱线工作区的 monorepo,这会造成任何麻烦吗?


你有几个问题。首先是您的匿名卷安装有一个拼写错误。它应该是node_modules(带“s”)

volumes:
  - ".:/usr/src/app"
  - "/usr/src/app/node_modules"

第二个是将所有文件复制到容器中。这是不必要的,因为您打算批量安装它们。

只需复制安装依赖项所需的文件

FROM node:14-alpine

WORKDIR /usr/src/app

# If I don't install nest's cli the app won't start telling me nest was not found.
RUN npm install -g @nestjs/cli 

COPY package.json package-lock.json .

# Install all dependencies
RUN npm install

# package.json start script
CMD [ "npm", "run", "start:dev"]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 docker-compose 后缺少依赖项 的相关文章

随机推荐

  • Swing JDialog/JTextPane 和 HTML 链接

    我在 swing 中使用 html 页面JTextPane在 JDialog 中 在html中我有一个 a href John a 当我通过资源管理器查看网页时 当鼠标转到链接时 我可以看到mailto 当我按下链接时 我收到错误 未安装默
  • php - 获取关联数组的数字索引

    我有一个关联数组 我需要找到键的数字位置 我可以手动遍历数组来找到它 但是有没有更好的方法构建到 PHP 中 a array blue gt nice car gt fast number gt none echo find numeric
  • 从 opendaylight-startup-archetype 构建的 OpenDaylight Oxygen Deploy 应用程序

    开放日光氧气Maven 3 3 9乌班图16 04卡拉夫4 m2 settings xml cp n m2 settings xml orig wget q O https raw githubusercontent com openday
  • MarkLogic 连接查询

    您好 我是 marklogic 和 Xquery 世界的新手 我无法想到在 Marklogic Xquery 中编写以下逻辑的起点 如果有人能给我想法 样本 我将不胜感激 以便我可以实现以下目标 我想根据 B XML 中的单词查找来查询 A
  • 如何展平多级/嵌套 JSON?

    我正在尝试将 JSON 转换为 CSV 文件 以便用于进一步分析 我的结构的问题是 当我转换 JSON 文件时 我有相当多的嵌套字典 列表 我尝试使用熊猫json normalize 但它只展平第一层 import json import
  • 来自不同包的同名 R S4 类

    假设有两个包 Package A 有这个类 setClass Person slots c name character age numeric setGeneric age function x standardGeneric age s
  • PHP flock() 非阻塞为什么还是阻塞?

    我正在使用集群 函数通过获取临时文件上的锁来检查脚本的另一个实例是否已经在运行 因此下一个实例应该检查文件是否未锁定 否则它将停止
  • 添加到集合然后对其进行排序,还是添加到已排序的集合更快?

    如果我有一个Map像这样 HashMap
  • 在 C# 中测试数组的相等性

    我有两个数组 例如 int Array1 new 1 2 3 4 5 6 7 8 9 int Array2 new 9 1 4 5 2 3 6 7 8 确定它们是否具有相同元素的最佳方法是什么 你也可以使用SequenceEqual 前提是
  • firestore中READS的数量及其计算依据

    我还是没明白no的计算 Firestore 上的阅读次数 作为一个实验 我只是坐在 Firestore 控制台上 什么也没做 没有连接设备 没有移动设备 没有模拟器 什么都没有 没有 在使用 TAB 下注册的读取数在大约 10 分钟内大约有
  • 添加到防火墙例外列表

    我得到了下面提到的代码 用于将我的应用程序添加到 Windows 防火墙例外列表 我想知道这是否也适用于其他防火墙 例如 防病毒防火墙等 如果没有 请提出解决方案 注意 我的应用程序以管理员权限运行 但我的用户无法理解quickheal等的
  • 在 Javascript 字符串中插入

    假设我有一个很长的复合字符串 var result string1 string2 string3 我通过创建一个新的列表项在网站中显示该字符串 var listElement document createElement li conta
  • 如何搜索并替换特定的行号字符串

    line index 2d file Desktop books sh sed i bak e line index file 将删除 line index 指向的整行 sed i s harry potter g file 将寻找哈利并用
  • 当 json 值包含空格时将 jq 输出分配给 bash 数组

    当我这样做时 arr echo crew name kirk name bones name mr spock jq r crew name sh I get echo arr 2 mr echo arr 3 spock 但是当我这样做时
  • Git 提交范围中的双点“..”和三点“...”有什么区别?

    一些 Git 命令采用提交范围 一种有效的语法是用两个点分隔两个提交名称 另一种语法使用三个点 两者有何区别 将提交范围与 Git 日志结合使用 当您使用提交范围时 例如 and with git log 它们之间的区别在于 对于分支 A
  • 用相同的索引值对列表的所有元素进行子集化[重复]

    这个问题在这里已经有答案了 可能微不足道 但我没有找到解决方案 我试图用相同的索引值对列表的所有元素进行子集化 假设我的清单是 mylist list seq 22 30 2 c 1 5 rep 8 5 这给了我 1 1 22 24 26
  • 将 Talend ETL 作业公开为 Web 服务

    我目前正在评估 Talend ETL Talend Open Studio for Data Integration 我想知道如何 是否可以将 ETL 作业公开为 Web 服务 我知道我可以将作业导出为 Web 服务并通过特定的 URL 调
  • 如何从控制器获取 User.Identity.Name?

    我想在我的所有视图中获得一些 viewData 信息 所以我正在遵循本教程 http www asp net LEARN mvc tutorial 13 cs aspx 所以我制作了自己的 applicationController 但我需
  • 在 Visual Studio 中通过 config.xml 添加插件参数不起作用

    我正在使用 VS2013 Update 4 和 Apache Cordova Tools CTP 3 1 我一直在努力安装两个插件 它们都使用
  • 使用 docker-compose 后缺少依赖项

    我对 docker 还很陌生 但我终于理解了 docker compose 和普通 docker 命令之间的区别 我想为我的开发环境部署一些容器 其中包括带有 Nest js 的后端和 postgress 数据库 进一步向下该行我将包括一个