Heroku技术细节
Heroku运行的虚拟机的规格是什么? 我的一个二进制可执行文件无法正常工作(在我的电脑上工作得很好),我认为这可能是由于技术不匹配造成的。
当我在我的可执行file
上运行file
时,我得到Mach-O 64-bit executable x86_64
。
- Heroku是否使用x86架构的64位机器?
- 他们使用什么样的nix?
- (C ++)的可执行文件在我的应用程序本地运行良好,但Heroku本身不能运行?
我得到的错误是胡言乱语:
2014-09-07T04:38:32.909511+00:00 app[web.1]: ./process: 1: # !H__PAGEZERO __TEXT __text__TEXT a d a __stubs__TEXT: not found 2014-09-07T04:38:32.909519+00:00 app[web.1]: ./process: 3: Syntax error: "(" unexpected 2014-09-07T04:38:32.909521+00:00 app[web.1]: 2014-09-07T04:38:32.909517+00:00 app[web.1]: ./process: 2: : not found
Heroku应用程序部署在基于64位Ubuntu 10.04的Cedar Stack上。 新的Cedar-14堆栈基于Ubuntu 14.04。
通过部署一个简单的Node.js应用程序并使用heroku run bash
我们可以检查实时环境:
$ heroku run bash Running `bash` attached to terminal... up, run.2785 ~ $ which node /app/vendor/node/bin/node ~ $ file /app/vendor/node/bin/node /app/vendor/node/bin/node: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped ~ $ uname -a Linux 9cf0ac66-9131-4a19-8f4a-f4a132cf3db8 3.8.11-ec2 #6 SMP Tue Jul 22 22:02:15 UTC 2014 x86_64 GNU/Linux
注意Heroku 不是devise用来运行预编译的可执行文件是很重要的。 相反,它被devise为编译你的应用程序,作为Heroku Buildpack的构build阶段的一部分 。
有关更多详细信息,请参阅十二因子应用程序的“构build,发布,运行”部分 – 一组应用程序最佳实践,您必须遵循以使用像Heroku这样的PaaS。
- node.js heroku由于缺less依赖关系,Ghost无法启动:无法find模块
- 用socket.io-redis和RedisToGo在Heroku上扩展到2+ dynos
- 将具有服务帐户的Firebase应用程序部署到Heroku(带有dotenv的环境variables)
- 错误R14(超过内存配额)heroku节点
- 用nodeJS在Heroku上dynamic创build子域名?
- 将节点应用中的git隐私部署到Heroku中
- NodeJS应用程序的构build是成功的(Heroku),但在启动时,Heroku的应用程序错误
- Heroku不读取节点版本
- 需要节点模块时,强制区分大小写的string匹配