Не удается запустить отсутствующий модуль узла - PullRequest
0 голосов
/ 21 мая 2019

Я новичок в узле, поэтому использую это как отправную точку.

https://github.com/voduytuan/docker-socketio

APP.JS

var http = require('http');
var socketio = require('socket.io');

var app = http.createServer(function(req, res) {
    var postData = "";
    req.on('data', function(chunk) {
      postData += chunk; //Get the POST data
    });

    req.on('end', function() {
      if (typeof(postData) !== "undefined") {
        var message = JSON.parse(postData);

        //Do something here
        //Todo...
      }
    });
    res.end();
}).listen(8080);  //Use a non-standard port so it doesn't override your Apache

var io = socketio.listen(app); //Attach socket.io to port 8080

io.sockets.on('connection', function(socket) {
  socket.on('disconnect', function () {

  });
});

DOCKER RUN:

docker run -ti -d --restart=always --name mysocketio -v app.js:/srv/app.js -p 8080:8080 voduytuan/docker-socketio

DOCKERFILE:

FROM zzrot/alpine-node
MAINTAINER Vo Duy Tuan <tuanmaster2012@gmail.com>

RUN apk add --update \
    supervisor \
  && rm -rf /var/cache/apk/*

ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf

RUN /bin/mkdir -p /srv/logs

WORKDIR /srv


RUN npm install --silent socket.io@0.9.14
RUN npm dedupe

EXPOSE 8080

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

DIR:

Dockerfile Лицензия Readme.md supervisord.conf app.js

Когда я смотрю на файлы журнала, я вижу это?

Error: Cannot find module '/srv/app.js'
    at Function.Module._resolveFilename (module.js:440:15)
    at Function.Module._load (module.js:388:25)
    at Module.runMain (module.js:575:10)
    at run (bootstrap_node.js:352:7)
    at startup (bootstrap_node.js:144:9)
    at bootstrap_node.js:467:3

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Скопируйте текущий каталог в / srv: COPY./ srv Предполагается, что структура вашей папки в этой же папке выглядит следующим образом:

| --Dockerfile

| --app.js

| --supervisord.conf



FROM zzrot/alpine-node
MAINTAINER Vo Duy Tuan <tuanmaster2012@gmail.com>

RUN apk add --update \
    supervisor \
  && rm -rf /var/cache/apk/*

ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf

RUN /bin/mkdir -p /srv/logs

WORKDIR /srv

COPY . /srv

RUN npm install --silent socket.io@0.9.14
RUN npm dedupe

EXPOSE 8080

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

1 голос
/ 21 мая 2019

В вашем контейнере Docker нет app.js.

Чтобы добавить его, измените Dockerfile и добавьте команду ADD:

FROM zzrot/alpine-node
MAINTAINER Vo Duy Tuan <tuanmaster2012@gmail.com>

RUN apk add --update \
    supervisor \
  && rm -rf /var/cache/apk/*

ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf

##### CHANGE HERE:
ADD app.js /srv/
#####

RUN /bin/mkdir -p /srv/logs

WORKDIR /srv


RUN npm install --silent socket.io@0.9.14
RUN npm dedupe

EXPOSE 8080

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...