node.js - 在 Node 中找不到模块、docker - babel 配置

标签 node.js docker dockerfile

我使用 docker 时遇到找不到模块错误。我不确定发生了什么事。我尝试删除 docker-compose 文件中的“卷”。我还尝试了 rming 镜像并再次运行 docker-compose up 。我真的对这里发生的事情感到茫然。任何帮助将不胜感激。

docker-compose

version: '2'
services:
  nginx:
      build: "./nginx"
      links: ["node1", "node2"]
      ports: ["80:80"]
  node1:
      build:
        context: "./node"
        args:
          http_proxy: "${http_proxy}"
          https_proxy: "${https_proxy}"
      environment:
        http_proxy: "${http_proxy}"
        https_proxy: "${https_proxy}"
        NODE_PATH: "lib"
        NODE_ENV: "production"
        POSTGRES_USER: "admin"
        POSTGRES_PASSWORD: "password"
      links: ["postgres", "mongo"]
      ports: ["5000:5000"]
  node2:
      build:
        context: "./node"
        args:
          http_proxy: "${http_proxy}"
          https_proxy: "${https_proxy}"
      environment:
        http_proxy: "${http_proxy}"
        https_proxy: "${https_proxy}"
        NODE_PATH: "lib"
        NODE_ENV: "production"
        POSTGRES_USER: "admin"
        POSTGRES_PASSWORD: "password"
      links: ["postgres", "mongo"]
      ports: [5000]
  postgres:
      image: "postgres"
      environment:
          POSTGRES_USER: "admin"
          POSTGRES_PASSWORD: "password"
      ports: ["5432:5432"]
  mongo:
      image: mongo
      ports: ['27017:27017']

Dockerfile

FROM node

# Set up environment
RUN npm config set proxy $http_proxy
RUN npm config set https-proxy $https_proxy

# Install app
ENV INSTALL_PATH="/opt/node"
RUN ["mkdir", "-p", "$INSTALL_PATH"]
ADD package.json $INSTALL_PATH/package.json
ADD index.js $INSTALL_PATH/index.js

# Define working directory
WORKDIR $INSTALL_PATH

# Install dependencies
RUN npm install -g nodemon
RUN npm install

# Expose port
EXPOSE 5000

# Run app
ENTRYPOINT npm start

index.js

require('babel-core/register')()
require('babel-polyfill')
require('./bin/server.js')

package.json

{
  "name": "no-commerce",
  "version": "0.0.1",
  "description": "API for No-Commerce",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "dev": "./node_modules/.bin/nodemon index.js",
    "test": "NODE_ENV=test ./node_modules/.bin/mocha --compilers js:babel-register --require babel-polyfill",
    "lint": "eslint src/**/*.js",
    "docs": "./node_modules/.bin/apidoc -i src/ -o docs"
  },

错误:找不到模块“./bin/server.js”

文件结构:

- Root
    -docker-compose
-node
    -package.json
    -bin
         -server.js
    -index.js
    -Dockerfile 
-nginx

最佳答案

对于初学者,您只需将这些文件添加到 docker 文件中的容器中:

ADD package.json $INSTALL_PATH/package.json
ADD index.js $INSTALL_PATH/index.js

您需要将 server.js 添加到 $INSTALL_PATH/bin

关于node.js - 在 Node 中找不到模块、docker - babel 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48778656/

相关文章:

ubuntu - 当我启动容器时启动 tor 和 polipo

javascript - forEach 循环中的 Mongoose Promise 函数不起作用

javascript - 在 node.js 模块中将原型(prototype)函数添加到 JSON

javascript - 我可以使用具有多个源和多个目标的 Gulp 任务吗?

docker - Jenkins 大师 - docker 奴隶 : Build shows error

docker - 港口机器人账号: Error response from daemon: unauthorized: authentication required

docker - 由于 Luigi 的工作分配不均, worker 过早死亡 (2.6.1)

docker - 我可以向Docker容器添加新的环境变量吗

node.js - 当我使用 2 个 baseImages 时,在 Dockerfile 中传递环境变量不起作用

node.js - 蒙戈D : How to update specific field of a document in a collection?