Tag: node.js

Dokku / Docker部署非http nodejs应用程序

我现在的目标是自动化一个nodejs应用程序,它只使用telnet连接来接收客户端数据(它embedded了发送统计数据和位置的设备)。 他们所做的只是发送一个简单的csv文本行,所以没有HTTP头或HTTP协议。 看起来像这样: var net = require('net'); server.on('connection', function(sock) { sock.on('data', function(data) { // data handling is here } } Docker使用nginx来代理本地访客端口并将其展示给父机器。 据我所知,默认情况下,Nginx无法正常使用非http连接。 有没有可能使其工作? 在这种情况下selectDokku进行自动化是否是错误的?

如何禁用Docker容器重新启动“gcloud预览应用程序运行”

我用gcloud preview app run .启动我的Nodejs应用gcloud preview app run . 命令。 每次我更新项目中的任何文件, gcloud重新启动Docker容器。 它总是需要很多时间。 在Google Compute Engine文档中,我find了restartPolicyconfiguration,但试图将其添加到我的app.yaml ,运行该应用程序时会引发错误: 错误:configuration无效:AppInfoExternaltypes的对象的意外属性“restartPolicy”。 可能意味着它不应该在Google云上使用自定义虚拟机。 我想知道是否有办法告诉gcloud禁用自动的Docker容器重新启动,但是当我需要的时候手动设置呢?

泊坞窗命令附加运行缓慢

我有docker集装箱,增加3卷和链接到另一个docker集装箱。 这个链接的容器链接到另一个。 该容器包含一个正在侦听一个端口的nodejs服务器。 启动容器的时间很短。 如果我尝试附加到该容器,则有时需要3分钟,直到attach-command运行。 任何人都可以给我一个理由为什么附加命令花了这么长时间才开始? 这是我的Dockerfile: FROM ubuntu:trusty ENV DEBIAN_FRONTEND noninteractive RUN apt-get update RUN apt-get -y install curl RUN apt-get -y install nodejs RUN apt-get -y install npm RUN npm install forever -g RUN npm install n -g RUN n 0.11.11 RUN npm install gulp -g RUN mkdir -p data/dmcms-static-ng RUN mkdir -p […]

Bunyan在aws上的logging器泄露文件描述符

我正在使用bunyan来login我的node.js API,它是由aws托pipe的。 当我加载testingAPI时,它会在4000个文件描述符之后出现。 我们发现应用程序上的打开文件描述符随着每个请求而增加。 configurationbunyanlogging器的代码如下所示 var defaultLogFileName = "/var/log/test_api.log", defaultLogLevel = "debug"; var logger = bunyan.createLogger({ name: 'resumes', streams: [{ path: process.env.LogFileName || defaultLogFileName, level: process.env.LogLevel || defaultLogLevel }] }); app.on('after', function(req) { logger.info("response = ", res); } 我们在ECS托pipe的Docker容器中运行此API,并使用restify。 bunyanlogging器是否正确执行? 有什么我错过了吗?

通过wercker.yml公开应用程序的端口

我configuration了我的wercker.yml以使用NodeJS框并安装StrongLoop并运行npm-install,如下所示: box: nodesource/node:trusty build: steps: – script: code: | npm install -g strongloop – npm-install 我想采取由此产生的容器,运行在我的服务器上,并启动我的应用程序。 但是,默认情况下,下载并运行容器时,所需的端口(3000) 不会公开。 有没有办法让我通过werckerconfiguration公开这个端口,或者我需要准备我自己的盒子与StrongLoop和端口3000暴露在wercker中使用或使用从wercker产生的容器,并使用Dockerfile后公开。 提前致谢。

在安装Kerberos时,Docker组合会挂起

我正在使用下面的文件为一个小型节点项目。 # dockerfile FROM node:0.12.6 ADD . /code WORKDIR /code RUN npm i # docker-compose.yaml web: build: . command: npm start environment: EXPRESS_PORT: 5000 ports: – "5000:5000" volumes: – .:/code links: – redis – mongo redis: image: redis mongo: image: mongo docker-compose up按照正常方式docker-compose up收益,直到我的一个依赖mongoose试图安装Kerberos: kerberos@0.0.12 install /code/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/node_modules/kerberos (node-gyp rebuild 2> builderror.log) || (exit 0) 在这之后,安装好像挂了15分钟以上。 […]

Docker Socket.IO只能用于docker run -it标志

我正在尝试使用以下命令对Socket.IO进行dockerize。 它的工作原理是,客户端可以存档握手并连接到套接字服务器。 //this works perfectly docker run -it socket_io "node" "app" 不过,我想要的是运行我的套接字服务器以下称号。 但不知何故,当我使用这个命令运行套接字服务器时,客户端卡在套接字轮询/连接阶段。 //this does not work, client stuck in socket polling docker run socket_io "node" "app" 任何想法为什么发生这种情况,以及如何解决?

MongoDB自动与docker + node.js + mongodb重新连接

在一个容器(容器1)中,我有一个正在运行的mongod守护进程。 此容器通过node.js(container2)链接到另一个容器。 当我开始容器一切工作正常: docker start container1 docker start container2 当我重新启动container1时,第二个容器中的node.js脚本失去了与mongodb的连接,并且因为mongodb的IP发生了更改,所以无法重新连接。 如何configurationnode.js使用MongoDB服务器的新IP重新连接? 更新 :简化的代码,在container1重新启动后停止工作: var http = require('http') , mongodb = require('mongodb'); mongodb.MongoClient.connect('mongodb://username:password@container1:27017/dbname', {uri_decode_auth: true, server: {auto_reconnect: true}}, function(err, db) { http.createServer(function(request, response) { // Do some work with db and send response }).listen(config.port); });

无法获取在Docker容器中运行的AngularJS站点

我有一个angular度的网站,我试图在docker集装箱运行(只能通过boot2docker现在)。 Dockerfile看起来如下所示: FROM ubuntu:14.04 RUN sudo apt-get update RUN sudo apt-get install -y npm # Set in what directory commands will run WORKDIR /home/app # Put all our code inside that directory that lives in the container ADD . /home/app RUN sudo npm install && \ sudo npm install -g grunt-cli #Need to do this […]

反向代理nginx和Express服务器返回502

我正在运行一个带有Nginx反向代理configuration的VPS,转发给三个Angular网站。 每个站点都在Express服务器后面的Docker容器中运行。 我起床的前两个网站没有问题。 他们是简单的Angular网站,在项目目录的底部有server.js和index.html文件。 对于第三个站点我有一点点爱好者,并使用Grunt将项目文件构build到一个名为public的新目录中。 我的目标是从该公共目录中查看该站点。 这是我的nginx.conf文件。 请注意,前两个服务器块正在按预期工作。 然而,浏览到第三个结果是“502错误请求”: server { listen 80; server_name domain1.com domain2.ca; location / { proxy_pass http://127.0.0.1:9001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_redirect off; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name sub1.domain1.com sub1.domain2.ca; location / { proxy_pass http://127.0.0.1:9002; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_redirect off; proxy_set_header […]