Tag: node.js

如何将KeystoneJS变成一个微服务平台

我希望你能帮助我。 我正在构build一个使用docker-compose,mongodb,redis,nginx(负载均衡器)和4个keystone实例的Keystone锅炉板 。 我想用Kubernetes部署这些微服务,并且能够有效地水平扩展。 虽然这个样板文件当前有效,但是数据build模结构的低效率有两个问题。 我有4个keystone实例,每个都有自己的数据模型。 所有数据模型都与其他数据模型有关系数据。 因此,除了拥有自己的数据模型之外,每个keystone实例还需要其他3个实例的数据模型。 我必须在每个keystone实例的keystone.js中声明'用户模型'。 我的问题是: 有没有办法引用已经在另一个keystone实例中创build的关系数据模型,而不是在每个keystone实例上重新创build它们? 为什么每个keystone实例都要求我引用“用户模型”,并且是否有一种方法可以引用另一个已经创build的keystone实例的用户模型? 在此先感谢您的帮助。 詹姆士

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('/', […]

找不到模块npm-cli.js

我几次重新安装了npm,我可以通过写入npm start来成功启动npm。 不幸的是,当我用docker(npm dockerDeploy)部署我的代码时,我发现了下面的错误。 我正在使用Npm v6.1.0。 问候 Error : Error: Cannot find module 'C:\Users\kopuz\git\icon2\icon\daimler-icon-frontend\node_modules\npm\bin\npm-cli.js' at Function.Module._resolveFilename (module.js:438:15) at Function.Module._load (module.js:386:25) at Function.Module.runMain (module.js:575:10) at startup (node.js:160:18) at node.js:445:3 module.js:440 throw err; ^

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"]

nginx上的webpack服务器拒绝连接

我试图运行我的django应用程序与Vue.js前端docker。 我想有一个Django镜像,服务器的nginx镜像和数据库的postfgresql镜像。 我还需要一个webpack的应用程序来运行它的热重载服务器,而在开发过程中,这是不需要的,因为django / nginx将直接读取build.js文件,不需要额外的服务器。 我的configuration如下所示: 1 – 我的主docker文件 # Set the base image FROM python:latest ENV PYTHONUNBUFFERED 1 # File Author / Maintainer MAINTAINER Maintaner @cosbgn # Set variables for project name, and where to place files in container. # overwrite -e SETTINGS=LOCAL when runnign local dev. ENV PROJECT=analyticme ENV SETTINGS=PROD ENV CONTAINER_HOME=/opt ENV […]

应用程序在集群上的docker容器中的configuration

如何在一个机器集群上的Docker容器中部署应用程序,并使用数据库用户名和密码以及其他应用程序特定设置等设置来configuration该应用程序。 而不必将设置放在容器中作为configuration文件,也不需要将设置放在机器上,因为机器是可回收的。 此外环境variables是没有select,因为这些是在日志中可见,不适合密码和私人密钥imo。 应用程序在开发时是一个Node.js应用程序,我使用JSONconfiguration文件运行它。 生产环境将在AWS ECS环境中存在多台机器。 这些机器都在群集中运行docker,它自己的应用程序是docker镜像,应用程序的多个实例将使用负载平衡器在实例之间分配负载来运行。

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

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

从Docker容器内的NodeJS连接到Windowsnetworking共享驱动器

一直用这个敲我的头,并会感谢任何帮助! 我search了一下,发现了一些可能的解决scheme,但对我来说都是不行的。 我有一个nodejs应用程序在Windows中开发,现在运行在docker容器(使用节点:最新的形象)。 应用程序需要连接到一个共享的Windowsnetworking驱动器来执行读/写操作,但是当应用程序在docker容器内部运行时,它似乎并不工作(它在docker外面的windows机器上运行时工作正常) 。 networking驱动器共享文件夹看起来像这样。 分享给大家: \\ MYSERVER \testing Nodejs代码(不完全,但给你一个我如何访问文件的想法): let fileLocation = "\\myserver\test\file.pdf" let readStream = fs.createReadStream(fileLocation) // When the stream is done being read, end the response readStream.on('close', () => { // End response response.status('200').end() // Remove the file fs.unlinkSync(fileLocation) }) // Stream chunks to response readStream.pipe(response) 在windows上运行nodejs的时候,这个工作正常,但是在nodejs docker容器中运行的时候,我总是收到“ENOENT:no such file or […]

TypeError:db.collection不是一个函数

我想发布数据,我已经创build了mLab数据库,我得到这个错误,但我不知道怎么回事。我也已经读过以前问这个问题的问题,但我无法解决我的错误我是新来的。 所以在这里,我发布了我正在尝试实现的代码,它取自本教程https://medium.freecodecamp.com/building-a-simple-node-js-api-in-under-30-minutes- a07ea9e390d2 。 server.js const express = require('express'); const MongoClient = require('mongodb').MongoClient; const bodyParser = require('body-parser'); const db = require('./config/db'); const app = express(); const port = 8000; app.use(bodyParser.urlencoded({extened:true})); MongoClient.connect(db.url,(err,database) =>{ if (err) return console.log(err) require('./app/routes')(app,{}); app.listen(port,() => { console.log("We are live on"+port); }); }) db.js module.exports = { url : "mongodb://JayTanna:Jay12345@ds147510.mlab.com:47510/testing" }; index.js […]

运行nginx节点并使用docker letsencrypt

我试图运行docker的下面的场景,但我无法抓住几件事情。 基本上我想在同一台机器上运行 example.com,www.example.com –> Static web site api.example.com –> NodeJS server Nginx will run as load balancer and Lets encrypt certificate will be used. 这是我想出来的docker-compose.yml文件。 version: '3.1' services: load_balancer: image: jwilder/nginx-proxy ports: – 80:80 – 443:443 volumes: – /var/run/docker.sock:/tmp/docker.sock:ro – /usr/secrets/load_balancer/certs:/etc/nginx/certs:ro – html:/usr/share/nginx/html – vhost:/etc/nginx/vhost.d labels: com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true" letsencrypt_companion: image: jrcs/letsencrypt-nginx-proxy-companion volumes: – /var/run/docker.sock:/var/run/docker.sock:ro – […]