Tag: JavaScript

Nginx代理导致错误:getaddrinfo EAI_AGAIN

在尝试为我的项目设置Docker容器时遇到了一个错误,我不明白。 我的设置涉及多个运行在不同容器中的Node.js应用程序,以及一个nginx代理服务器来处理所有传入应用程序的stream量。 我的nginx代理如下所示: server { listen 80; server_name "~^(?<service>\w{1,}+)\-?\w*\.something\.com$"; location / { resolver 127.0.0.11; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass_request_headers on; proxy_pass http://$service:8081; } } 这使用RegEx从URL中获取服务器名称,并将stream量代理到端口8081上正确的服务器,该服务器似乎正常工作。 应用程序正在成功路由。 当我的Node.js应用程序尝试向REST API发出外部http请求并引发以下错误时,会发生此问题 { Error: getaddrinfo EAI_AGAIN dev.something.com:443 at Object.exports._errnoException (util.js:1020:11) at errnoException (dns.js:33:15) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26) code: 'EAI_AGAIN', errno: 'EAI_AGAIN', syscall: 'getaddrinfo', […]

在node:7映像中安装ghostscript4js; 没有findlibgs.so

我目前正在用Docker容器开发一个Web应用程序。 我正在使用一个节点:7基本映像,并安装了与它的依赖关系的ghostscript。 我的项目还包含一个包含所有节点包的package.json。 我需要使用依赖于ghostscript和node-gyp的ghostscript4js,它们都被安装。 在npm安装期间,我得到一个g ++错误: > ghostscript4js@2.0.7 install /usr/src/app/node_modules/ghostscript4js > node-gyp rebuild gyp info it worked if it ends with ok gyp info using node-gyp@3.5.0 gyp info using node@7.10.1 | linux | x64 gyp http GET https://nodejs.org/download/release/v7.10.1/node-v7.10.1-headers.tar.gz gyp http 200 https://nodejs.org/download/release/v7.10.1/node-v7.10.1-headers.tar.gz gyp http GET https://nodejs.org/download/release/v7.10.1/SHASUMS256.txt gyp http 200 https://nodejs.org/download/release/v7.10.1/SHASUMS256.txt gyp info spawn /usr/bin/python2 gyp […]

bash:configuration/ etc / hosts接受子网中的多个IP地址

如何configuration/etc/hosts来parsing子网范围内的全局IP地址? 即IP为123.456.789.0 。 我想它validationIP 123.456.789.11 & 123.456.789.22作为名称friendlyserver。 这是通过一个orchestrator使用一个link 。 如果不能这样做,我该如何使用/etc/hosts创build静态IP? 我有一个编排工具,在服务器文件的每次重新上传(这是不可取的)改变(链接服务器)的IP。 [使用Apcera,docker,js,bash,linux和一个服务器]

如何将dockerfile环境variables传递给node.js文件?

如何将dockerfile环境variables传递给node.js文件? 我跟随docker文档传递ENVvariables,没有任何variables被传递。 对这个问题的任何见解? dockerfile: FROM 10.118.224.132:5000/node:8.6.0-wheezy ENV PORT 6000 ENV iamIP2="10.118.225.199" ENV iamPort 9999 ENV iamPort2=9997 RUN apt-get update WORKDIR /usr/src/app COPY package.json /usr/src/app COPY . . ENV mongoDBurl=10.118.225.149:27017/globalIndex CMD ["node", "server.js"] server.js: "use strict"; const fs = require('fs'); const http = require('http'); const cors = require('cors'); const request = require('request'); const link1 = process.env.PROXY_IAM_URI; […]

在MacOS上获取Dockerode库的问题(Node.js)

我和我的朋友试图让这个库在macOS上崩溃,并且遇到了麻烦: https : //github.com/christophetd/docker-python-sandbox/ 。 该库使用dockerode来启动多个docker镜像,然后在沙箱环境中执行python代码。 我们已经确认可以在Docker中创build一张图片并成功调用它,但是我们发现,如果我们尝试使用库来调用多个图片,它会超时(具体来说,这似乎是一个在mac上的问题 – 我们发现,如果我们在linux docker环境中启动整个容器,它就可以工作!)。 我们非常困惑,但是认为问题来自传递到Dockerode的选项,特别是在Sandbox和PoolManager文件(在lib目录中)中指定的选项。 有什么想法是什么问题? 以下是我所指的选项: this.options.containerLaunchOptions = { "Image": this.options.imageName, "NetworkDisabled": false, "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "OpenStdin": false, "Privileged": false, "User": "sandboxuser", "Tty": false, "HostConfig": { "Memory": this.options.memoryLimitMb * 1000000, "MemorySwap": -1, "Privileged": false, "CpusetCpus": "0" // only use one core }, "Labels": { "__docker_sandbox": […]

Ember js和Docker没有find余烬cli-build

我不确定是什么问题,因为当我做的烬它工作正常,但是当我做docker组成,它会引发这个错误:web_1 | 错误:找不到ember-cli-build.js。 请参阅转换指南: https : //github.com/ember-cli/ember-cli/blob/master/TRANSITION.md#user-content-brocfile-transition 并且该文件位于目录中; 有任何想法吗? 这是我的dockerfile: # 1: Use node 6.4.0 as base: FROM node:6.4.0 # Install Ember CLI and Bower and NPM RUN npm install RUN npm install -g ember-cli@2.7.0 RUN npm install -g bower # install watchman RUN \ git clone https://github.com/facebook/watchman.git &&\ cd watchman &&\ git checkout v3.5.0 […]

Node.js运行与脚本库的Python脚本

我有一个Node.js应用程序,每分钟都会对API进行GET调用。 它收到的数据存储在一个MongoDB数据库中。 同时,Node.js每分钟都在该数据上运行Python脚本(使用Keras库)。 基于Python脚本的输出,Node.js应用程序对同一个API进行POST调用。 在我下载Node.js,npm,python的keras库和mongo后,这将全部在Docker上全天候运行。 Node.js应用程序和Python脚本应该如何交互? 我可以有一个简单的node-cmd npm包来从Node.js代码运行脚本,还是更复杂? 我错过了什么吗? 谢谢!

AWS Linux,Docker容器获取npm启动

这里所有这些都是新鲜的, 试图让docker运行在单个节点上运行我的JavaScript应用程序。 find这个AWS文章来安装npm: http : //docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html 运行以下命令: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash . ~/.nvm/nvm.sh nvm install 6.11.5 node -e "console.log('Running Node.js ' + process.version)" 然后开始按照这个指南创build一个应用程序来testing: https : //medium.com/@sunnykay/docker-development-workflow-node-express-mongo-4bb3b1f7eb1e 我跑了: npm init npm install –save express npm install –save nodemon touch app.js nano app.js #contents of app.js var express = require('express'); var app = express(); app.get('/', […]

node.js + pm2 – 根据环境configurationnode_args

下面是一个非常简单的process.json ,用pm2启动一个js应用程序。 我的目标是让这个过程启动下面的node_args但是只能用于非prod启动 。 所以,例如,如果某个环境variables是以某种方式设置的,则触发node_args,否则忽略它们。 这可能吗? 如果没有,我可以做的任何解决方法? { apps : [ { name : 'API', script : './app.js', node_args: ["–inspect","–debug=0.0.0.0:7000"], env: { NODE_ENV: 'development' } } ] } 我知道有可能在命令行中抛出node_args ,但是目标是在node_args中运行,其中“run”命令对于源图像是静态的,所以这不是真正可行的。 这是我的Dockerfile中的CMD条目: CMD [ "pm2-docker", "–auto-exit", "–watch", "process.json"]

我应该如何处理dockerizing一个node.js服务?

我有一个用es6编写的节点应用程序,在与节点一起使用之前,有一个用于传输所有es6的babel层,就像在es6中编写的许多其他应用程序一样。 现在,从节点运行时,这很简单,因为您只需要构build图像,然后立即在本例中使用带有构build文件夹的节点./dist 当我想使用docker和构build图像时,它变得更加复杂。 什么是最好的方法,我应该在容器内使用babel,并在每次运行时进行转储,或者先构build一切,然后删除所有src并保留./dist 。 第一个的优点是构build过程简单快捷,另一个优势是我们在创build构build之后不需要devDeps