加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

node.js – 图:找不到模块 – docker run工作

发布时间:2020-12-16 03:48:19 所属栏目:安全 来源:网络整理
导读:我正在尝试使用最小的节点应用运行图. (编辑:从fig.yml删除卷) fig.yml: example: build: . command: node server.js ports: - "4000:4000" links: - postgrespostgres: image: postgres Dockerfile: FROM nodeADD . /srcWORKDIR /srcRUN npm install ser

我正在尝试使用最小的节点应用运行图.

(编辑:从fig.yml删除卷)

fig.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

无花果构建按预期进行.图失败了:

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

我不明白的是,我可以在一个容器(没有图形)中运行服务器而不用图:

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

要么

$docker run -it dockerexample_example
Listening on port 4000

要么

$docker run -it -p 4000:4000 dockerexample_example
Listening on port 4000

图试图运行这个容器的方式有什么不同?

这些文件可在此处获得:https://github.com/skyl/docker-example

最佳答案
不同的是数量.在docker run示例中,您没有指定任何卷,但是在fig.yml中,您正在将当前工作目录挂载到容器中的/ src,因此在构建期间添加的/ src将被卷掩盖,并且node_modules不可用.

我认为你应该可以从fig.yml中删除卷,否则你也必须在容器外运行npm install.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读