我是Node的新手,所以以此为起点。
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 执照 自述文件 主管 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
答案 0 :(得分:1)
您的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"]
答案 1 :(得分:1)
将当前目录复制到/ srv: COPY。 / srv 假设您的文件夹结构在同一文件夹中如下所示:
| --Dockerfile
| --app.js
| --supervisord.conf
FullTextQuery jpaQuery = fullTextEntityManager.
createFullTextQuery(luceneQuery, Author.class, Post.class, Comment.class);
jpaQuery.setProjection( ProjectionConstants.OBJECT_CLASS, ProjectionConstants.THIS );
List<Object[]> results = jpaQuery.list();
for ( Object[] result : results ) {
Class<?> resultClass = result[0];
Object resultObject = result[1];
// ... do stuff ...
}