Tag: node.js

Nodejs错误:uncaughtException:连接超时。 发生

我正在使用nodejs 4.2.0版,mongoose 4.4.7,mongodb 3.2.9(我正在使用mlab)。 该应用程序在docker映像上运行。 我随机得到这个错误。 由于这个错误,服务器崩溃,不要恢复,直到我重新启动它。 欣赏一些这方面的指导。 提前致谢。 2016-10-01T05:09:22.915Z – error: uncaughtException: connection timeout date=Sat Oct 01 2016 05:09:22 GMT+0000 (UTC), pid=60, uid=0, gid=0, cwd=/usr/src/app, execPath=/usr/local/bin/node, version=v4.4.7, argv=[/usr/local/bin/node, /usr/src/app/index.js], rss=69316608, heapTotal=44601440, heapUsed=33179840, loadavg=[0.07080078125, 0.19287109375, 0.13037109375], uptime=21152513, trace=[column=17, file=/usr/src/app/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js, function=, line=168, method=null, native=false, column=13, file=events.js, function=emitTwo, line=87, method=null, native=false, column=7, file=events.js, function=emit, line=172, method=null, native=false, […]

无法连接从节点Js(在主机)到MySql容器

我在Node中很新,我正在尝试一些书的例子。 当我尝试从NodeJS连接到一个Mysql容器时,我得到这个错误: Access denied for user 'root'@'172.17.0.1' MySql数据库位于使用此命令创build的Docker容器中: > docker run –detach –name=test-mysql -p 3306:3306 –env="MYSQL_ROOT_PASSWORD=root" mysql 这是我的节点程序的代码 'use strict'; var mysql = require('mysql'); var connection = mysql.createConnection({ host: '127.0.0.1', user: 'root', password: 'root' }); connection.query( 'SELECT "foo" AS first_field, "bar" AS second_field', function(err, results, fields) { if (err){ console.log(err); }else{ console.log(results); } connection.end(); } […]

你如何修改Heroku的nodejs buildpack来安装Docker?

我正在将一个节点应用程序部署到需要通过docker运行脚本的Heroku,例如: exec('docker run –volume=$(pwd):/etc…') 然而,Heroku没有安装Docker,我不确定如何修改Heroku的node buildpack使Docker可用。 我已经尝试使用https://get.docker.com/脚本来下载和安装Docker,例如: install_docker() { echo "Downloading and installing docker…" local code=$(curl -sSL https://get.docker.com/ | sh) if [ "$code" != "200" ]; then echo "Unable to download docker does it exist?" && false fi } 但是,这只会导致以下错误: “su:必须从terminal运行” 有任何想法吗? 感谢您的时间。

在docker中使用负载testing应用程序

我有这个简单的节点socker seerver,如下所示: var ws = require("nodejs-websocket") var connectionCount = 0; console.info("Node websocket started @ 8002"); var server = ws.createServer(function (conn) {; console.log("New connection", ++connectionCount); conn.on("close", function (code, reason) { console.log("Connection closed") }); }).listen(8002); 现在我想从机器上打这个服务器。 所以为了模仿这些机器,我使用了docker。 我想创build大约10个不同的docker集装箱,这将打击我的服务器。 我想通过使用名为thor( https://github.com/observing/thor )的负载testing工具从此Docker容器中访问服务器,该工具可以像运行 thor –amount 1000 –messages 100 ws://localhost:8002 所以我想创build10个不同的docker容器,每个容器应该使用这个叫做thor的工具,并打我的服务器 thor –amount 1000 –messages 100 ws://localhost:8002 我怎样才能实现这样的dockor容器。 PS:我是新手。

APIdevise – 分裂成不同的子域(微服务)

我们的应用程序基于API的第一个架构,目前基于单个域/服务: api.todos.com API的消费者是: 我们的networking前端 我们的移动应用程序 其他业务/公共 我们将为同一个应用程序构build用不同语言编写的新的微服务 。 例如,我们可能开发API服务: 统计 博客/内容 RSS订阅 search 我的问题是围绕处理域。 将每个服务分割成不同的子域是最好的 api.todos.com stats.todos.com content.todos.com rss.todos.com search.todos.com 还是有一个单一的统一的API域,我们做HTTP(第7层)路由到达我们的端点更好。 例如 api.todos.com/todos api.todos.com/stats api.todos.com/content api.todos.com/rss api.todos.com/search 不知道哪一个公共API更可取? 拥有多个子域会更容易,而不必处理中间路由层/代理。

如何将一个node.js docker实例放入一个自动加载日志的shell中

所以… 我正在尝试为我的团队在绿地原型项目上创build一个优雅的docker/节点设置。 我的团队将需要事先安装Node / NPM和Docker CLI,但之后我将使用NPM来pipe理所有内容,并且以前有… "scripts": { "docker": "npm run docker-build && npm run docker-start", "docker-build": "docker build -t docker_foo .", "docker-start": "docker run -it -p 8080:8080 –rm docker_foo", "start": "node server.js" } …和Dockerfile包含CMD … # Other stuff… EXPOSE 8080 CMD ["npm", "start"] 最终将启动节点服务器。 这对于查看日志和清理容器非常有效,但是我想把它变得更好。 我想改为在后台使用-d选项启动容器,并附加到容器,而不是使用初始命令拖尾日志来模拟相同的行为,除了当用户终止进程时,它们仍然在容器中他们可以评估容器的当前状态。 这导致我有… "scripts": { "docker": "npm run docker-build && […]

Dockerfile将新创build的文件添加或复制到泊坞窗图像 – 没有这样的文件或目录

我正在尝试运行一个gulp构build过程,该过程创build了在docker构build过程中运行应用程序的已编译和缩小的文件。 我可以validation吞噬进程的工作原理,但一旦docker构build完成,服务器无法访问构build文件。 泊坞窗,compose.yml build: ${REPO} depends_on: – api ports: – "8083:8080" volumes: – ${REPO}:/usr/src/app Dockerfile: FROM python:3.5.1-onbuild ARG mode=dev ENV MODE $mode # Install node.js RUN apt-get update RUN apt-get install -y build-essential RUN apt-get install -y curl RUN curl -sL https://deb.nodesource.com/setup_6.x | bash RUN apt-get install -y nodejs RUN node -v RUN npm -v […]

通过使用Docker中设置的环境系统variables,无法从节点连接到MongoDB服务器

我正在尝试使用节点和MongoDB镜像来构buildDocker镜像,但是我无法从Dockerfile或docker-composer中设置环境variables。 Dockerfile: FROM节点 运行mkdir / app WORKDIR / app COPY package.json / app 运行npm安装COPY。 /应用 ENV MONGODB_URI 192.168.99.100 / myapp EXPOSE 3030 CMD [“npm”,“开始”] 泊坞窗,compose.yml: 版本:“2” 服务: 网站: build: . volumes: – ./:/app ports: – "3030:3030" environment: – MONGODB_URI="192.168.99.100/myapp" links: – "mongo" 蒙戈: image: "mongo" ports: – "27017:27017" volumes_from: – mongodata mongodata: image: tianon/true volumes: […]

无法将debugging器附加到在主机模式下在Docker容器内运行的node.js应用程序

我试图将Visual Studio Code(v1.7)debugging器附加到在主机模式下在Docker容器内运行的node.js应用程序。 DEBUG=* /usr/bin/node –debug-brk /home/app/node_modules/homebridge/bin/homebridge — -U /home/data -P /home/app 命令: docker run -it –rm –net="host" \ –name homebridge \ -p "51826:51826" -p "5858:5858" \ -v `pwd`:/home/app \ dev/homebridge 使用默认的launch.json: { "version": "0.2.0", "configurations": [ { "name": "Docker: Attach to Node", "type": "node", "request": "attach", "port": 5858, "address": "localhost", "restart": false, "sourceMaps": false, […]

与docker使用senecajs

我目前正在一个项目的服务器端是基于nodejs(快递)。 我们主要使用docker-swarm来实现负载平衡和可伸缩性:事实上,我们构build了一个docker镜像并将其部署在4个节点之下,其余部分(负载均衡)由群集组成。 过去几天我一直在阅读关于微服务的概念,并且可以使用docker来构build微服务。 我也读过senecajs可以用来构build微服务。 它们可以结合使用吗? 我不想触摸我们目前的架构,但我仍然有兴趣使用微服务。 因此: senecajs将被用来分离express中的函数并构build微服务 docker-swarm将被用来构build容器(主要用于负载均衡和便于在任何服务器上部署)