这是我的目录结构for docker microservices 。我需要做的是将我的主机上的lib文件夹中的某些文件共享到容器中。这些是在两个容器中运行应用程序所需的lib文件。这是我在其中一个容器propinfo-finder中的一个docker文件中的内容
FROM alpine:3.3
RUN apk add --update nodejs
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN npm install
EXPOSE 3000
WORKDIR /usr/src/app
CMD node index.js
我使用此命令构建docker镜像docker build -t nodeapp/premcal .
构建过程成功。然后我使用此命令将目录bin
映射/挂载到容器以使其运行
从bin文件夹所在的父目录
docker run -v $PWD/lib:/usr/src/app -p 3010:3000 -i nodeapp/premcal
运行后我收到此错误
module.js:328
throw err;
^
Error: Cannot find module '/usr/src/app/index.js'
at Function.Module._resolveFilename (module.js:326:15)
at Function.Module._load (module.js:277:25)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
at node.js:966:3

主机是物理Ubuntu机器。
任何人都可以告诉我如何让它消失。我只有2小时的node.js和docker环境经验。 谢谢。
答案 0 :(得分:0)
我不是node.js的专家,但是您尝试运行index.js但是在lib文件夹中没有index.js。如果你想运行disco.js,那就是:
docker run -v $PWD/lib:/usr/src/app -p 3010:3000 -i \
davesrepo/dynamo node disco.js
答案 1 :(得分:0)
运行docker run -v $PWD/lib:/usr/src/app -p 3010:3000 -i davesrepo/dynamo bash
并查看/ usr / src / app deriectory。
我猜您没有成功安装lib文件夹或存在权限错误。
答案 2 :(得分:0)