Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js docker compose:找不到模块';打字形式';_Node.js_Docker_Docker Compose_Typeorm - Fatal编程技术网

Node.js docker compose:找不到模块';打字形式';

Node.js docker compose:找不到模块';打字形式';,node.js,docker,docker-compose,typeorm,Node.js,Docker,Docker Compose,Typeorm,这可能是一个重复的问题,但我无法理解。我正在尝试将以下内容归档: Postgres + NodeJs(Express, server) + Angular (dashboard) 构建中的两个项目都在/dist文件夹中生成文件 我可以单独构建和运行项目 我的目录结构: /root docker-compose.yml dashboard server 以下是服务器和前端项目的docker文件: 仪表板/Dockerfile # Stage 1 - Build project

这可能是一个重复的问题,但我无法理解。我正在尝试将以下内容归档:

Postgres + NodeJs(Express, server) + Angular (dashboard)
构建中的两个项目都在/dist文件夹中生成文件

我可以单独构建和运行项目

我的目录结构:

/root
   docker-compose.yml
   dashboard
   server
以下是服务器和前端项目的docker文件:

仪表板/Dockerfile

# Stage 1 - Build project
FROM node:latest as builder

WORKDIR /app

# Whatever directory you can use
COPY . /app/
RUN npm install
RUN npm run build --prod

# Stage 2 - Deploy in nginx
FROM nginx:alpine
RUN rm -rf /usr/share/nginx/html/*
COPY --from=builder /app/dist/ /usr/share/nginx/html/
COPY ./nginx/nginx.conf /etc/nginx/conf.d/default.conf

EXPOSE 80
FROM node:12

WORKDIR /app

# Adding package.json first
# If the package.json file changes, then Docker will re-run the npm install sequence otherwise Docker will use our cache and skip that part.
COPY package*.json /app/
RUN npm install

# Copy source code to docker image
COPY ./dist/* /app/
COPY .env.docker /app/.env

EXPOSE 3000
CMD node server.js
# Specify docker compose version
version: "3.7"

# Specify all the services we want in the container
services:
 db:
  # Type of database
  image: postgres

  # Pass values to database
  environment:
    POSTGRES_DB: 'somedb'
    POSTGRES_USER: 'someuser'
    POSTGRES_PASSWORD: 'somepassword'
  volumes:
    # Map path of data directory of postgres to local one
    - ./pgdata:/varlib/postgresql/data
  ports:
    - '5432:5432'

 # node server
 server:
   build: server
   links:
    - db
   ports:
    - '3000:3000'
   volumes:
    - ./server/dist:/app

 # front end
 dashboard:
   build: dashboard
   depends_on:
    - server
   ports:
    - '80:80'
   volumes:
    - ./dashboard/angular/dist:/app
服务器/Dockerfile

# Stage 1 - Build project
FROM node:latest as builder

WORKDIR /app

# Whatever directory you can use
COPY . /app/
RUN npm install
RUN npm run build --prod

# Stage 2 - Deploy in nginx
FROM nginx:alpine
RUN rm -rf /usr/share/nginx/html/*
COPY --from=builder /app/dist/ /usr/share/nginx/html/
COPY ./nginx/nginx.conf /etc/nginx/conf.d/default.conf

EXPOSE 80
FROM node:12

WORKDIR /app

# Adding package.json first
# If the package.json file changes, then Docker will re-run the npm install sequence otherwise Docker will use our cache and skip that part.
COPY package*.json /app/
RUN npm install

# Copy source code to docker image
COPY ./dist/* /app/
COPY .env.docker /app/.env

EXPOSE 3000
CMD node server.js
# Specify docker compose version
version: "3.7"

# Specify all the services we want in the container
services:
 db:
  # Type of database
  image: postgres

  # Pass values to database
  environment:
    POSTGRES_DB: 'somedb'
    POSTGRES_USER: 'someuser'
    POSTGRES_PASSWORD: 'somepassword'
  volumes:
    # Map path of data directory of postgres to local one
    - ./pgdata:/varlib/postgresql/data
  ports:
    - '5432:5432'

 # node server
 server:
   build: server
   links:
    - db
   ports:
    - '3000:3000'
   volumes:
    - ./server/dist:/app

 # front end
 dashboard:
   build: dashboard
   depends_on:
    - server
   ports:
    - '80:80'
   volumes:
    - ./dashboard/angular/dist:/app
docker compose

# Stage 1 - Build project
FROM node:latest as builder

WORKDIR /app

# Whatever directory you can use
COPY . /app/
RUN npm install
RUN npm run build --prod

# Stage 2 - Deploy in nginx
FROM nginx:alpine
RUN rm -rf /usr/share/nginx/html/*
COPY --from=builder /app/dist/ /usr/share/nginx/html/
COPY ./nginx/nginx.conf /etc/nginx/conf.d/default.conf

EXPOSE 80
FROM node:12

WORKDIR /app

# Adding package.json first
# If the package.json file changes, then Docker will re-run the npm install sequence otherwise Docker will use our cache and skip that part.
COPY package*.json /app/
RUN npm install

# Copy source code to docker image
COPY ./dist/* /app/
COPY .env.docker /app/.env

EXPOSE 3000
CMD node server.js
# Specify docker compose version
version: "3.7"

# Specify all the services we want in the container
services:
 db:
  # Type of database
  image: postgres

  # Pass values to database
  environment:
    POSTGRES_DB: 'somedb'
    POSTGRES_USER: 'someuser'
    POSTGRES_PASSWORD: 'somepassword'
  volumes:
    # Map path of data directory of postgres to local one
    - ./pgdata:/varlib/postgresql/data
  ports:
    - '5432:5432'

 # node server
 server:
   build: server
   links:
    - db
   ports:
    - '3000:3000'
   volumes:
    - ./server/dist:/app

 # front end
 dashboard:
   build: dashboard
   depends_on:
    - server
   ports:
    - '80:80'
   volumes:
    - ./dashboard/angular/dist:/app
通过查看不同的建议,我尝试了以下命令:

docker-compose build
docker-compose down
docker-compose up

在这两种情况下,我都会遇到以下错误:

db_1            | The files belonging to this database system will be owned by user "postgres".
db_1            | This user must also own the server process.
db_1            | 
server_1     | internal/modules/cjs/loader.js:834
server_1     |   throw err;
server_1     |   ^
server_1     | 
server_1     | Error: Cannot find module 'typeorm'
server_1     | Require stack:
server_1     | - /app/server.js
server_1     |     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:831:15)
server_1     |     at Function.Module._load (internal/modules/cjs/loader.js:687:27)
server_1     |     at Module.require (internal/modules/cjs/loader.js:903:19)
server_1     |     at require (internal/modules/cjs/helpers.js:74:18)
server_1     |     at Object.<anonymous> (/app/server.js:15:19)
server_1     |     at Module._compile (internal/modules/cjs/loader.js:1015:30)
server_1     |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1035:10)
server_1     |     at Module.load (internal/modules/cjs/loader.js:879:32)
server_1     |     at Function.Module._load (internal/modules/cjs/loader.js:724:14)
server_1     |     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) {
server_1     |   code: 'MODULE_NOT_FOUND',
server_1     |   requireStack: [ '/app/server.js' ]
server_1     | }
db_1            | The database cluster will be initialized with locale "en_US.utf8".
db_1            | The default database encoding has accordingly been set to "UTF8".
db_1            | The default text search configuration will be set to "english".
db|属于此数据库系统的文件将由用户“postgres”拥有。
db_1 |此用户还必须拥有服务器进程。
db|U 1|
服务器| 1 |内部/modules/cjs/loader.js:834
服务器|抛出错误;
服务器|1|^
服务器|1|
服务器_1|错误:找不到模块“typeorm”
服务器| 1 |需要堆栈:
server_1 |-/app/server.js
服务器1位于Function.Module.\u解析文件名(internal/modules/cjs/loader.js:831:15)
服务器| at Function.Module._load(内部/modules/cjs/loader.js:687:27)
服务器|位于Module.require(内部/modules/cjs/loader.js:903:19)
服务器|根据需要(internal/modules/cjs/helpers.js:74:18)
服务器| 1 | at对象。(/app/server.js:15:19)
服务器1在模块处编译(internal/modules/cjs/loader.js:1015:30)
server_1| at Object.Module._extensions..js(internal/modules/cjs/loader.js:1035:10)
服务器_1|位于Module.load(内部/modules/cjs/loader.js:879:32)
服务器| at Function.Module._load(内部/modules/cjs/loader.js:724:14)
服务器|位于Function.executeUserEntryPoint[作为runMain](internal/modules/run_main.js:60:12){
服务器1代码:“未找到模块”,
服务器1 | requireStack:['/app/server.js']
服务器_1 |}
db_1 |数据库集群将使用区域设置“en_US.utf8”进行初始化。
db_1 |默认数据库编码相应地设置为“UTF8”。
db_1 |默认文本搜索配置将设置为“英语”。
当我单独构建服务器时,不会出现此错误

我做错了什么


需要更多信息吗?

我也有类似的问题。解决了在packages.json中添加“typeorm”显式依赖项的问题。比如:

  "dependencies": {
        "typeorm": "^0.2.29"
        ...
  }