Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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 run works_Node.js_Docker_Fig - Fatal编程技术网

Node.js 图:找不到模块-docker run works

Node.js 图:找不到模块-docker run works,node.js,docker,fig,Node.js,Docker,Fig,我正在尝试使用最小节点应用程序运行fig up (编辑:从图yml中删除的卷) 图yml: example: build: . command: node server.js ports: - "4000:4000" links: - postgres postgres: image: postgres Dockerfile: FROM node ADD . /src WORKDIR /src RUN npm install server.coffee: e

我正在尝试使用最小节点应用程序运行
fig up

(编辑:从图yml中删除的卷)

图yml:

example:
  build: .
  command: node server.js
  ports:
   - "4000:4000"
  links:
   - postgres
postgres:
  image: postgres
Dockerfile:

FROM node

ADD . /src
WORKDIR /src
RUN npm install
server.coffee:

express = require 'express'
app = express()

app.get "/", (req, res) ->
  res.send "Hello World"

server = app.listen 4000, () ->
  console.log 'Listening on port %d', server.address().port
fig构建
按预期进行<代码>图向上失败,原因是:

example_1  | module.js:340
example_1  |     throw err;
example_1  |           ^
example_1  | Error: Cannot find module '/src/server.js'
example_1  |     at Function.Module._resolveFilename (module.js:338:15)
example_1  |     at Function.Module._load (module.js:280:25)
example_1  |     at Function.Module.runMain (module.js:497:10)
example_1  |     at startup (node.js:119:16)
example_1  |     at node.js:906:3
我不明白的是,我可以在一个容器(fig构建)中运行服务器,而不需要fig:

$ docker run -it dockerexample_example /bin/bash
root@58d25759047a:/# node /src/server.js 
Listening on port 4000

fig试图运行此容器的方式有什么不同


这些文件在此处可用:

不同之处在于
卷。在
docker run
示例中,您没有指定任何卷,但在
fig.yml
中,您正在将当前工作目录装载到容器中的
/src
,因此在生成过程中添加的
/src
被卷屏蔽,节点模块不可用


我认为您可以从
fig.yml
中删除
volumes
,否则您也必须在容器外部运行npm安装。

注意,我必须强制
docker rmi
错误映像。
fig up
当前在卷定义更改方面存在问题
$ docker run -it dockerexample_example
Listening on port 4000
$ docker run -it -p 4000:4000 dockerexample_example
Listening on port 4000