在启动nodejs应用程序docker容器时,docker-compose出错

时间:2017-01-20 17:28:48

标签: node.js docker docker-compose

我是docker的新手,我正在尝试使用docker-compose来启动节点应用程序容器,并且在启动节点应用程序时我不断收到错误,并且我不了解当前上下文中的路径如何工作撰写提起容器。 这是我的Dockerfile

FROM node:4.7
MAINTAINER anna

RUN mkdir -p /bbb/abc
ADD build /bbb/abc/
ADD package.json /bbb/abc/
RUN mkdir -p /var/log/abc
RUN cd /bbb/abc/ && \
  npm install --production && \
  rm package.json


EXPOSE 3080
ENV NODE_ENV=production

WORKDIR /bbb/abc/server/
CMD ["node","app.js"]

这是我的docker-compose.yml

version: '2'

services:
  abc:
    image: bbb-abc-n
    container_name: abc
    restart: unless-stopped
    working_dir: /bbb/abc/server/
    ports:
      - "3080:3080"
    environment:
      - NODE_ENV=production
      - NODE_PATH=/bbb/abc/server/
      - WORKDIR=/bbb/abc/server/
    volumes:
      - /var/log/abc:/var/log/bis/bcs

然后我做了一个构建

> docker build -t bbb-abc-n

然后,如果我运行docker run,那么容器已启动,节点应用程序正确启动为

> docker run -p 3080:3080 --name abc -d bbb-abc-n

这符合我的预期。

但是,如果我使用docker-compose运行以启动容器如下:

> docker-compose up

我收到了下面的错误,我不明白如何使用docker-compose进行路径上下文以及如何调试它。

这是我得到的错误:

Error: Cannot find module '../appconfig/production.json'
abc    |     at Function.Module._resolveFilename (module.js:325:15)
abc    |     at Function.Module._load (module.js:276:25)
abc    |     at Module.require (module.js:353:17)
abc    |     at require (internal/module.js:12:17)
abc    |     at Object.<anonymous> (/bis/bcs/server/utils/logger.js:6:17)
abc    |     at Module._compile (module.js:409:26)
abc    |     at Object.Module._extensions..js (module.js:416:10)
abc    |     at Module.load (module.js:343:32)
abc    |     at Function.Module._load (module.js:300:12)
abc    |     at Module.require (module.js:353:17)
abc    |     at require (internal/module.js:12:17)

感谢您的帮助

安娜

0 个答案:

没有答案