我使用docker找不到模块错误。我不知道发生了什么事。我试过删除'卷'在docker-compose文件中。我也试过rming图像并再次运行docker-compose up
。我真的不知道这里发生了什么。任何帮助将不胜感激。
搬运工-撰写
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
答案 0 :(得分:1)
对于初学者,您只是将这些文件添加到docker文件中的容器中:
ADD package.json $INSTALL_PATH/package.json
ADD index.js $INSTALL_PATH/index.js
您需要将server.js添加到$ INSTALL_PATH / bin