Tag: node.js

当我用PM2 + Docker启动我的应用程序时,只需运行并退出

我尝试按照这个教程 ,但是当我执行我的应用程序没有任何反应 我的Dockerfile(CHANGED) FROM keymetrics/pm2-docker-alpine:7 WORKDIR /api RUN npm install pm2 -g ADD . . CMD ["pm2-docker", "ecosystem.config.js"] 和我的ecosystem.config.js .. const maxMemory = process.env.WEB_MEMORY || 80; const nodeEnv = process.env.NODE_ENV || 'development'; module.exports = { apps: [ { name: 'api', script: 'api/index.js', node_args: [ '–optimize_for_size', '–max_old_space_size=400', '–gc_interval=100', ], instances: process.env.WEB_CONCURRENCY || -1, exec_mode: 'cluster', max_memory_restart: […]

构build一个自定义的节点 – 红色图像

我想制作我自己的Node-RED docker镜像,所以当我启动它时,stream将被加载,并且Node-RED已经准备好了。 我想要加载的stream被放置在'flows.json'文件中。 而当我通过接口手动导入它工作正常。 Docker的Node-RED文档build议使用自定义stream程来启动Node-RED $ docker run -it -p 1880:1880 -e FLOWS=my_flows.json nodered/node-red-docker 但是,当我尝试这样做时,stream程最终是空的。 我怀疑这必须做一些事实,我试图加载的stream程是使用'node-red-node-mongodb'插件,这是不是默认安装。 我如何构build已经安装了“node-red-node-mongodb”的Node-RED映像? 如果需要更多信息,请询问。 UPDATE 我做了下面的Dockerfile: FROM nodered/node-red-docker RUN npm install node-red-node-mongodb 然后我用它来build立它: docker build -t testenvironment/nodered . 并开始与它: docker run -d -p 1880:1880 -e FLOWS=flows.json –name node-red testenvironment/nodered 但是当我去Node-RED接口时,没有stream量。 另外我没有看到边栏中的MongoDB节点。

从Node.js中的docker容器获取stdout和stderrstream

我正在使用dockerode库,我想创build一个容器,执行一个单一的命令,并(单独)返回该命令的标准输出和标准错误。 到目前为止,我能够得到stdout ,但我没有与stderr的运气。 我在Github的问题中find了很多方法,但是没有一个能够工作。 我有的代码是(我使用承诺和协程来避免callback): const Promise = require('bluebird'); const coroutine = Promise.coroutine; const Docker = require('dockerode'); const docker = coroutine.promisifyAll(new Docker()); const foo = coroutine(function*(){ let container = Promise.promisifyAll(yield docker.createContainerAsync(/*…*/)); yield container.startAsync(/*…*/); const execOpts = {Cmd: /*…*/, AttachStdout: true, AttachStderr: true, Tty: true}; const exec = Promise.promisifyAll(yield container.execAsync(execOpts)); const stream = yield exec.startAsync(); let […]

如何在Docker中使用永久CLI?

我正在Dockerizing我的每一个项目,我使用一个叫forever的CLI来重新运行我的脚本,如果他们失败了。 我正在使用官方的node.js Docker教程来对我的简单脚本进行Dockerize,但是当我遇到了更复杂的脚本(使用forever CLI )时,我不知道如何在Docker中运行CLI。 有没有什么办法可以做到这一点,无论是使用forever CLI或模块 ?

节点ECS任务不崩溃

节点ECS任务不崩溃 我有一个运行Node:Boron(v6.9.0)的ECS工作者。 我偶尔会得到一个未被捕获的exception。 例如: { "date": "Mon Jul 03 2017 09:09:29 GMT+0000 (UTC)", "process": { "pid": 28, "uid": 0, "gid": 0, "cwd": "/usr/src/app", "execPath": "/usr/local/bin/node", "version": "v6.11.0", "argv": [ "/usr/local/bin/node", "/usr/src/app/src/poll.js" ], "memoryUsage": { "rss": 67502080, "heapTotal": 33660928, "heapUsed": 25145608, "external": 8981275 } }, { "os": { "loadavg": [ 0.65869140625, 0.44921875, 0.4541015625 ], "uptime": 218908 […]

无法基于节点:8.1映像为Node应用程序构buildDocker容器

我正在尝试使用以下Dockerfile为node:8.1创build一个容器node:8.1映像: FROM node:8.1.4 RUN mkdir /home/node/.npm-global ; \ mkdir -p /home/node/app ; \ chown -R node:node /home/node/app ; \ chown -R node:node /home/node/.npm-global ENV PATH=/home/node/.npm-global/bin:$PATH ENV NPM_CONFIG_PREFIX=/home/node/.npm-global USER node WORKDIR /home/node/app # Just for dev RUN npm install mocha knex nodemon -g –quiet # Opting for COPY over ADD as there is no need of […]

无法从我的Node.js应用程序连接到Cassandra Docker容器

我通过运行以下命令来设置Cassandra容器: 这将从docker集线器中拉出cassandradocker图像,并用cassandra启动一个容器 docker run –name cassandraDb -d –publish-all=true cassandra:3.11 我可以看到它通过运行以下命令来设置: docker images docker ps -a docker exec -i -t cassandraDb sh -c 'nodetool status' 这里是我的Node.js路由的代码,当我点击它,我得到了继续错误: res.send(client.connect() .then(() => { console.log('Connected'); console.log(Object.keys(client.metadata.keyspaces)); return client.shutdown(); }) /* tslint:disable-next-line */ .catch((err): any => { console.error('There was an error when connecting', err); return client.shutdown(); })); 错误: There was an […]

configurationMailDev将邮件转发到外部服务器

我必须与Docker一起使用MailDev。 我在Docker Hub上使用djfarrelly / maildev镜像。 直到现在,我总是这样开始: docker run –name srvm-smtp -p 1080:80 -p 1025:25 djfarrelly/maildev bin/maildev –web 80\ –smtp 25 但现在我需要发送邮件到外部服务器(例如gmail)。 我在网上find的选项: $ maildev –outgoing-host smtp.gmail.com \ –outgoing-secure \ –outgoing-user 'you@gmail.com' \ –outgoing-pass '<pass>' 我在哪里和如何使用它在我使用docker图像的情况下? PS。 我尝试添加他们到运行docker命令像选项,但它不工作。 喜欢这个: docker run –name srvm-smtp -p 1080:80 -p 1025:25 djfarrelly/maildev bin/maildev –web 80 –smtp 25 –outgoing-host smtp.gmail.com –outgoing-secure […]

运行使用docker撰写节点容器时出错

在运行“docker-compose up”时,出现以下错误: npm info lifecycle server@1.0.0~dev: server@1.0.0 > server@1.0.0 dev /code/app > nodemon -L ./bin/www –exec babel-node sh: 0: getcwd() failed: No such file or directory path.js:1144 cwd = process.cwd(); ^ Error: ENOENT: no such file or directory, uv_cwd at Error (native) at Object.resolve (path.js:1144:25) at Function.Module._resolveLookupPaths (module.js:361:17) at Function.Module._resolveFilename (module.js:431:31) at Function.Module._load (module.js:388:25) at […]

你可以更新节点:最新

FROM node:latest RUN mkdir -p /app/templates WORKDIR /app COPY package.json /app/package.json COPY *.js /app/ RUN npm install npm@latest -g CMD ["node","/app/index.js"] 从上面的Dockerfile有什么办法更新节点就像更新Ubuntu或apt-get更新? 或者,npm你真的可以控制吗?