Tag: 部署

如何让Azure nodejs webapp重新运行npm install?

我正在Azure上运行Node web应用程序。 我使用“local git”方法部署应用程序。 每当我对源代码进行更改,提交,然后使用git push azure master进行部署时,网站上的代码将按预期更新。 但我最近的一个变化包括添加一个新的包到我的package.json文件。 现在,当我部署时,我的文件被更新,但azure似乎并没有重新运行npm install ,并且没有安装新的模块。 这意味着应用程序不会启动:当我的代码调用require('missingModuleName')它会得到一个致命的错误并停止。 上次我有这个问题,我从Azure中删除了应用程序,并从头创build一个新的。 但我希望有一个更简单的解决scheme。 我看到(在https://github.com/projectkudu/kudu/wiki/Deployment )部署“对于节点站点,Kudu在wwwroot文件夹中运行'npm install'”。 我不确定标准的“local git”部署方法是否调用Kudu部署过程。 我是否需要创build一个部署钩子(如https://github.com/projectkudu/kudu/wiki/Deployment-hooks中所述 )? 安装日志显示: 2017-07-29T07:59:51 Updating branch 'master'. 2017-07-29T07:59:52 Updating submodules. 2017-07-29T07:59:52 Preparing deployment for commit id '556a34aab5'. 2017-07-29T07:59:52 Running custom deployment command… 2017-07-29T07:59:52 Running deployment command… 2017-07-29T07:59:52 Command: deploy.cmd 2017-07-29T07:59:53 Handling node.js deployment. 2017-07-29T07:59:53 KuduSync.NET […]

优雅地更新服务器代码

我有一个Node服务器,它正在运行一些代码。 这段代码现在已经过时了。 如何在没有服务器停机的情况下切换到新的代码? 我是否需要另一台服务器充当缓冲区?

NodeJS和Github:保持数据安全

我正在开发一个连接到几个服务的Web应用程序,例如:New Relic,Mailgun。 对于New Relic,我有一个API密钥。 对于Mailgun,我有一个login名和密码。 我显然不想检查他们到版本控制(并推送他们到Github)。 存储库最终将被公开。 我部署了capistrano,现在在我的deploy.rb中有以下几行: set :app_environment, "PORT=3005 GA_CODE=UA-123456-1 GA_URL=myawesomedomain.com NEW_RELIC_LICENSE_KEY=1234abc1234abc1234abc MAILGUN_USER=postmaster@myawesomedomain.com MAILGUN_PASS=321cba" 然后用这些variables指定为环境variables,为我的节点应用程序创build一个新贵的作业: NODE_ENV=production PORT=3005 /* more of the same */ node app.js Deploy.rb没有签入版本控制,所以它似乎是保持安全的好方法。 但是,我不确定这是否是正确的方式来做到这一点:这感觉很不好,我相信有更好的方法来保证我的密码安全? 谢谢。

使用与nodejs应用程序部署的船队

我正在使用节点JS版本0.10.15.I想要使用舰队在多个服务器上部署我的应用程序,首先部署在testing服务器上,然后运行testing,并成功部署到另一台服务器上。 当我input舰队或任何舰队命令时,安装舰队后,它会给出错误 – / usr / bin / env:node:没有这样的文件或目录cat:/ doc / commands:没有这样的文件或目录

如何在laravel应用程序启动时自动运行Node和Redis服务器

我从来没有使用Node或Redis,但是在构build的应用程序中,我正在使用节点和Redis来运行socket.io.js以进行一些实时更新function。 目前为了让我做这个工作,我必须打开terminal并运行 $ cd project/nodejs/Redis/lib/src $ ./redis-server 那我就无法再使用那个terminal窗口了。 所以我打开一个新的terminal窗口并运行 $ cd project/nodejs $ node server.js 我再一次无法再使用这个terminal窗口。 然后我打开另一个窗口并运行 $ cd project $ php artisan serve 如何将所有这些结合起来,并在有人导航到应用程序URL时运行它? 我是否需要在命令目录中创build命令? 我做了一些研究,但我仍然困惑。 在我开始使用laravel之前,我从来没有使用过terminal,所以我真的不知道我需要研究什么。

Azure网站:Kudu无法安装

我昨天开始遇到这个问题。 我运行时部署失败: npm install kudusync -g 出现以下错误: Error: SSL Error: CERT_UNTRUSTED 从一些search看来,Kudu的一个依赖项是自签名的或未签名的。 似乎我可以禁用节点的SSL检查 – 但这似乎是一个危险的select,不build议。 有谁知道任何其他解决方法? azure色的输出如下: remote:npm http GET https://registry.npmjs.org/kudusync[K remote:…… [K remote:npm http GET https://registry.npmjs.org/kudusync[K remote:………………………… ……………………. [K remote:npm http GET https://registry.npmjs.org/kudusync[K remote:npm ERR! 错误:SSL错误:CERT_UNTRUSTED [K 远程:npm ERR! 在ClientRequest。 (d:\ Program Files(x86)\ nodejs \ node_modules \ npm \ node_modules \ request \ main.js:440:26)[K […]

如何部署更改而不中断服务?

我即将开始一个与Node ,Express和Mongo的项目,但有一个重要的问题,我必须先解决。 说我有一个运行的应用程序 。 迟早,我会再次编码,并希望部署更改 。 到目前为止,我只在开发模式下工作,因此,执行^ C并重新启动服务器不是问题。 如何在生产? 显然,我不能只是一次垃圾的服务器和所有的用户。 有没有办法在不中断服务的情况下部署更改? 我研究过像新贵和类似的系统,但是它不能解决问题(或者我错过了什么?)。 我正在考虑build立一种故障转移,但是有人必须在我之前做到这一点…

debugging“serverless-webpack”:GraphQL错误:Lambda services-publishService在调用期间抛出一个错误

使用“无服务器-webpack”,试图部署。 我发出SLS_DEBUG=* sls deploy –verbose ,一切正常,直到: Serverless: Couldn't publish this deploy information to the Serverless Platform. Error ————————————————– GraphQL error: Lambda services-publishService threw an Error during invocation For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable. Stack Trace ——————————————– Error: GraphQL error: Lambda services-publishService threw an Error during invocation at new ApolloError (/Users/jamesfishwick/Documents/get-mobile-screen/node_modules/apollo-client/apollo.umd.js:1975:28) […]

部署与webpack反应的应用程序

我正在做一个关于React的教程,我根据反应做了一个YouTube的克隆。 现在我想上传到我的域名(托pipe在one.com),但它不工作,因为bundle.js找不到。 很明显,因为应用程序需要运行“npm start”。 我一直在googlesearch,发现我需要通过编写一个webpack的部署configuration来部署应用程序,但我无法让它工作。 我从来没有明白这一点,我想问:我如何部署一个JavaScript / nodejs / webpack网站到服务器? 我在正确的轨道上? 我的项目是基于这个起动器: https : //github.com/StephenGrider/ReduxSimpleStarter 更新所以我设法得到一个bundle.js文件只需键入cmd webpack ./src/index.js bundle.js 上传到服务器 现在的问题是,它正在网站的根目录中寻找包和样式。 我在这里托pipe网站,请检查控制台日志

Node.js部署,在使用Jenkins和Chef的企业环境中使用什么方法?

让我先解释一下上下文。 上下文 目前我们正在使用Jenkins服务器,并使用Chef Server来进行configurationpipe理。 我们正朝着更持续的部署环境迈进,这是我一直在努力的工作stream程: 代码被GIT检入 Gitlab触发Jenkins运行一个新的版本 jenkins拉最新的代码,并运行npm安装 Jenkins使用FPM创build一个RPM RPM被上传到RPM存储库 Jenkins将应用程序的git存储库中的厨师部署食谱上传到Chef Server。 Jenkins通过运行厨师客户端触发应用程序的新部署。 新的RPM由部署食谱安装。 在(手动触发)升级到舞台和生产环境中,我没有可用的互联网连接。 RPM克服了这个问题。 食谱是使用Berkshelf开发的。 以这种方式部署的Node.js应用程序有时使用编译的本地库(一个项目有3个以上的依赖项编译本机代码)。 我对这些types的部署过程知之甚less,但我听说的一个缺点是,只有在编译环境(当前是Jenkins本身)应该与部署环境具有相同的体系结构时,才使用RPM并编译它。 通过使用RPM的奖金是神器保持完全相同的所有环境,它不需要重新编译,并没有从各地拉动成百上千的依赖。 尽pipe如此,工作stream程似乎有点复杂,不得不坚持相同的架构,我觉得不太灵活。 对于我们的用例,我们需要以下内容: 快速部署在云上(可能是亚马逊) 快速部署在我们自己的基础设施上(目前没有互联网连接,但如果有充分的理由,可能允许某些访问) 应用程序更新尽pipe不太常见,但应该可以轻松自动部署; 应该可以连续部署 他们正在开发的软件体系结构是一个微服务体系结构,我希望在各种服务器上部署几十个Node.js应用程序(为简单起见,可能在同一服务器上进行多个部署)。 对于我自己的项目,我大部分时间都在使用Heroku,不需要花费任何精力来设置。 上述工作stream程需要两周的时间才能创build(第一次)。 问题 pipe理这一切的努力使我不得不质疑上面的一些步骤: 是rsyncing和使用npm安装坏听起来,牵引所有这些依赖关系,并重新编译在每个环境? 这真的和我想的一样不稳定吗? (我有一个Java和PHP的背景,在PHP中没有任何编译和FTP的是在当天的规范,而在Java中,一切都整齐地打包)。 为什么使用RPM来说Tarbal? (直到一个星期前,我从来没有手动build立一个RPM,我知道它的能力很less,什么也不用在这里)。 我一直在研究Chef中的“部署食谱”,主要安装部署目录,监控configuration,初始化脚本和(可选)nginx代理configuration。 这个部署指南的版本与部署本身相同,并在原始的git仓库代码中提供。 在厨师界我还没有find任何有关这方面的最佳做法,我曾预料它会非常普遍。 这是不是要走的路甚至是反模式? 在同一台服务器上部署多个微服务(不同的端口号说),这真的很糟糕? 是否有意义? (我简单地看了一下Docker,但是认为它会引入太多的复杂性,作为逻辑分离微服务的手段,我们仍然在努力设置这个东西)。 您可能能够分享的任何经验将不胜感激!