Tag: node.js

有没有可能在dokker.json中添加多个源文件?

我想在我的项目中使用dokkerjs文件我的代码有多个JavaScript文件。 是否有可能在.dokker.json文件中.dokker.json一个目录作为源文件? 我引用这个链接。 { "dir": "docs", "literate": { "source": "dokker.js", "dir": "annotated" }, "jsdoc": { "title": "Dokker.js", "source": "dokker.js", // want to add multiple files here , I tried *.js "markdown": "README.md", "html": "index.html", "readme": "README.md", "template": "templates/index.ejs.html", "github": "https://github.com/oceanhouse21/dokker/blob/master/dokker.js", "site": "http://dokkerjs.com" }, "mocha": { "command": "mocha –reporter doc", "test": "test/dokker.js", "path": "tests.html", "template": "templates/tests.ejs.html" […]

容器正在产生,但是当产生多个docker容器时,发出的命令失败

我们有一个自定义的Chrome扩展,可以执行一些与Web相关的任务。 这些任务需要是唯一的,因此我们继续在运行chrome的单个docker容器上运行每个任务的概念 我们目前有4个ec2实例(c4.2xlarge)运行ubuntu,然后在docker容器中使用chrome。 我们还有一个更小的ec2实例,它从mongodb中读取任务并将它们分配给一个接一个地填充它们的服务器。 所以如果一个任务被添加,它将被分配给其中一个实例,然后select它,创build一个容器执行任务,然后销毁该容器。 每项任务大概需要2到6分钟才能完成。 我们使用dockerode在nodejs中dynamic地创build和销毁容器。 我们做了很多的基准testing,得出每台服务器最多可以运行55个任务的结论,所以我们设定了每个服务器最多45个任务的阈值,以保证安全。 这是在所有4个实例上运行的代码的一部分 function start_polling_mongo() { Tasks.find({ server_id: instance_id, task_status: 1 }, function(err, all_tasks) { //update the tasks Tasks.update({ _id: { "$in": all_tasks } }, { task_status: 2 }, { multi: true }, function(err) { //perform the tasks all_tasks.forEach(function(task) { setTimeout(function() { run_task_in_container(task.task_id); }, 1000); }); }); }); setTimeout(start_polling_mongo, […]

如何在Docker中运行Iojs?

我有以下的Dockerfile: FROM ubuntu:14.10 ENV HOMEDIR /usr/share/iojs RUN apt-get update && \ apt-get install software-properties-common python-software-properties -qq -y && \ apt-get upgrade -y && \ apt-get install -qq -y supervisor npm RUN cd ${HOMEDIR} && \ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash && \ . ~/.nvm/nvm.sh && \ nvm install iojs RUN supervisorctl restart iojs EXPOSE 80 […]

从Docker中的Node应用程序访问文件系统

我有一些问题试图访问Docker容器内的文件系统; 我不断收到这个问题: fs.access(path, fs.R_OK & fs.W_OK, function (err) { ^ TypeError: Object #<Object> has no method 'access' 我想要做的是在创build文件之前检查文件系统中的访问权限。 path和错误是由以下代码生成的: var fs = require('fs'); var path = require('path'); var rootPath = path.dirname(require.main.filename); fs.access(rootPath, fs.R_OK & fs.W_OK, callback); 我该如何解决这个问题?

在返回完整结果之前,closuresDocker API的节点https.request

我正在尝试在远程计算机上向Docker守护进程创build一个Node https.request。 当连接到大约40个容器(运行或不运行)的守护进程时,或者当我限制请求只返回大约40个容器时,一切工作正常。 然而,没有限制(所有的容器都应该返回,基本上是一个docker ps -a命令),看起来连接在完整主体返回之前结束。 我想知道的是,如果这与多less的Docker可以返回,或者如果我需要在我的请求中指定,以保持连接活着一个更长的响应。 这是我的代码到目前为止: var options = { hostname: server, port: port, path: path, method: 'GET', key: fs.readFileSync('/path/to/**-client-key.pem'), cert: fs.readFileSync('/path/to/**-client-cert.pem'), rejectUnauthorized: false, }; var request = https.request(options, function(result) { console.log("statusCode: ", result.statusCode); console.log("headers: ", result.headers); var resultBody = ''; result.on('data', function(d) { resultBody += d; }); result.on('end', function() { callback(resultBody); }); […]

Docker为节点mongo分开容器,如何从节点容器中填充mongo

我有两个docker集装箱,一个运行我的节点服务器,另一个运行mongo。 我想要做的是当我安装我的蒙哥图像,我需要它使用node.js来填充我有一个脚本蒙戈。 用mongo和node.js单独的容器做这个最好的方法是什么? 目前我的想法是,当我创build我的mongo容器,我安装节点并运行我的填充脚本作为RUN命令。 有没有更好的方法呢?

无法连接到Windows 7上的Docker守护进程

我试图部署一个应用程序在谷歌云,只是按照https://cloud.google.com/nodejs/getting-started/hello-world#running_hello_world教程,但每次运行: gcloud –verbosity debug preview app deploy app.yaml –promote 我收到一条消息错误: Copying certificates for secure access. You may be prompted to create an SSH key pair. DEBUG: Loaded Command Group: ['gcloud', 'compute', 'copy_files'] DEBUG: Detected docker environment variables: DOCKER_HOST=tcp://104.197.75.48:2376, DOCKER_CERT_PATH=tmpurmvdk, DOCKER_TLS_VERIFY=True INFO: Starting new HTTPS connection (1): 104.197.75.48 DEBUG: Failed to connect to Docker daemon due […]

RESTful API 2x nodejs应用程序在同一台服务器上,具有后备function

微服务我希望运行front-end-web和back-end-api nodejs应用程序。 通过RESTful HTTP API在单台机器上进行通信(读取ec2)。 无状态我想在未来横向扩展ec2实例。 使用Redis (ElasiCache)和MySQL (RDS)(无状态读取) 负载平衡缩放时,我会负载平衡与ELB。 那里没有问题。 问题:如果back-end-api在机器上出现故障,是否有可能以某种方式回back-end-api另一台运行back-end-api实例的ec2服务器? 我将如何做到这一点。 为什么不分离API应用程序? 以及我想保持在同一台服务器上的延迟和可维护性。 哦,顺便说一句,我使用docker:-)

为什么在容器IP和别名之间交换会导致AJAX请求的不同?

我有一个位于这里的小示例项目,说明了在使用nginx + node + 主机 docker stack 时看到的问题 。 我有2个容器: 简单地返回一个json对象的节点 (快速)应用程序。 它是根据这个网站启用CORs。 它有它的端口发布到主机通过3000:80 一个nginx服务器也基于这个网站启用CORs。 它只从默认位置( /usr/shared/nginx/html )提供静态内容( index.html和main.js文件)。 其端口通过8080:80 。 当从主机单独运行容器时,我可以访问节点服务器并查看返回的JSON对象。 当我访问nginx服务器时,我看到我的index.html和main.js的javascript代码运行。 现在我有节点应用程序容器链接到nginx服务器容器。 从我的nginx容器的main.js文件中,我试图通过http://nodeapp/api访问服务器。 我看到一个CORs错误 XMLHttpRequest无法加载http:// nodeapp / api 。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因' http:// localhost:8080 '因此不被允许访问。 奇怪的是, 响应头指示它来自nginx,而不是我所期望的快速应用程序。 nginx容器也没有logging任何东西。 事情的工作 如果我将XMLHttpRequest的URL更改为节点容器的IP(比如说172.17.0.2),它将按预期工作, 并且响应标头指示它来自快速服务器。 在我的/etc/hosts文件中有一个条目: 172.17.0.2 nodeapp abc123ContainerId quickserve_nodeapp_run_1 当我从一个交互式的tty容器中curl节点容器时,它也能按预期工作。 如果我加载节点容器并使用http-server (主机上http-server ),则按预期工作, 并且响应标头指示它来自快速服务器。

Docker化节点应用程序不提供静态内容

我最近将我的nodejs应用程序移动到了docker容器中。 一切工作正常,除了静态文件(如鲍尔组件)不会被加载(404)。 怎么了? 在我的节点应用程序: app.use('/static', express.static(__dirname + '/../public')); 我的.bowerrc { "directory": "public/lib" } Bower下载并安装正确目录中的所有文件。 我在docker集装箱内自己检查了一下。 我的dockerfile: FROM node:4-onbuild COPY . /src RUN cd /src/ && npm install && bower install –allow-root RUN ["node", "/src/server.js"] EXPOSE 3000