首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我无法将phoenix应用部署到heroku,因为依赖(称为coherence)编译失败,如何使其工作?

要将Phoenix应用部署到Heroku并解决依赖编译失败的问题,可以按照以下步骤进行操作:

  1. 确保你已经在本地安装了Elixir和Phoenix框架,并且应用在本地可以正常运行。
  2. 在Phoenix应用的根目录下,创建一个名为elixir_buildpack.config的文件,并将以下内容添加到文件中:
代码语言:txt
复制
erlang_version=24.0
elixir_version=1.12.2

这将指定在Heroku上使用的Erlang和Elixir版本。

  1. 在应用根目录下的mix.exs文件中,找到deps函数,并确保coherence依赖项被正确添加。例如:
代码语言:txt
复制
defp deps do
  [
    # 其他依赖项...
    {:coherence, "~> 0.5"}
  ]
end

确保coherence的版本与你的应用兼容。

  1. 打开终端,导航到应用根目录,并使用以下命令创建一个新的Heroku应用:
代码语言:txt
复制
heroku create
  1. 使用以下命令将应用推送到Heroku:
代码语言:txt
复制
git push heroku main

确保你已经将应用的代码提交到了Git仓库。

  1. 当推送完成后,使用以下命令在Heroku上运行数据库迁移:
代码语言:txt
复制
heroku run mix ecto.migrate

这将确保数据库结构与应用代码同步。

如果在编译过程中遇到依赖失败的问题,可以尝试以下解决方法:

  • 确保你的依赖项在mix.exs文件中的deps函数中被正确声明,并且版本与你的应用兼容。
  • 检查是否有其他依赖项与coherence存在冲突。可以尝试更新其他依赖项的版本,或者查找是否有与coherence不兼容的依赖项。
  • 如果依赖项需要特定的编译选项或环境变量,可以在elixir_buildpack.config文件中添加相应的配置。
  • 如果问题仍然存在,可以尝试在Heroku上手动构建和调试应用。可以使用Heroku的命令行工具或Web界面来执行构建和查看构建日志,以便更详细地了解编译失败的原因。

总结:通过以上步骤,你应该能够将Phoenix应用成功部署到Heroku,并解决依赖编译失败的问题。如果你需要了解更多关于Phoenix、Heroku或其他相关技术的信息,可以参考腾讯云的相关产品和文档。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

放弃“免费套餐”,Heroku的遗产又少了一个

一位开发者说,这种魔法对他的职业生涯起到了很大的催化作用,“当年作为学生,没有信用卡,也穷,Heroku 的免费计划帮助我打开了真正了解网站如何工作的大门。...如果没有 Heroku,我永远无法达到今天的水平,以至于现在我真的无法说清它对我的职业生涯曾经有多么重要!” 像他这样通过 Heroku 学习编程的,不是少数。...Buildpack:Buildpack 是如何部署用特定语言编写的应用的通用公式,是 Dockerfile 的前身,也可以说是一种更合适的抽象层。...自托管的奇点 Heroku 云将变得如此可扩展,如此健壮,就像一个自引导的语言编译器一样,它能够自托管。...Heroku 也存在着令人不齿的退化情形,比如将组织功能构建在核心 API 之上,变成了一个单独的微服务,这是由于没有任何使其更加集成的机制。

5.1K40

如何在Ubuntu 16.04上使用Distillery和edeliver自动化Elixir-Phoenix部署

介绍 Elixir构建于Erlang编程语言之上,是一种功能性编程语言,因其专注于开发人员的工作效率以及因为编写高度并发和可伸缩的应用程序而易于使用而闻名。...Distillery将Elixir应用程序编译成一个包,然后您可以在其他地方部署。它还生成允许热交换代码的软件包,这意味着您可以在不停机的情况下升级实时应用程序。...在本教程结束时,您将拥有一个可以执行以下操作的命令: 构建与您的生产环境兼容的Phoenix版本 将发布部署到您的生产环境 在生产环境中启动您的应用程序 通过在没有任何停机时间的情况下部署新版本来热交换当前的生产版本...第一次在本地开发机器上编译基于Elixir的应用程序时,系统会提示您安装Rebar,这是Mix依赖的Erlang的构建和依赖工具。在提示符下输入Y。...如果没有此配置,Channels将无法工作,因为WebSocket请求不会进入服务器。

4.3K00
  • 如何在Ubuntu上部署Elixir-Phoenix MySQL应用程序

    从现在开始,您很少需要触摸生产数据库,因为您将执行几乎所有操作,例如从本地计算机创建和更改表。 现在,生产数据库已准备就绪,您可以将应用程序重新部署到服务器。...应用程序不应该有任何可观察到的更改,因为我们没有触及应用程序代码本身。 如果升级成功但无法更新应用程序,请确保您已提交代码并提升了应用程序版本。...第六步 - 创建地址簿 为了演示如何部署数据库更改,让我们在我们的应用程序中构建一个简单的通讯录并将其部署到生产环境中。 警告:此通讯录可以公开访问,任何人都可以访问和编辑它。...从应用程序部署到生产服务器到迁移生产数据库的时间,这可能导致应用程序的某些部分在生产中失败。在此间隔期间,应用程序代码可能引用数据库中不存在的表或列。...如果您对本地工作正常感到满意,请返回终端并按CTRL+C两次以终止服务器。 现在情况正常,您可以将更改部署到生产环境。打开mix.exs以更新应用程序版本。

    6.1K20

    关于“Python”的核心知识点整理大全62

    20.2.2 安装 Heroku Toolbelt 要将项目部署到Heroku的服务器并对其进行管理,需要使用Heroku Toolbelt提供的工具。...注意 在Windows系统中,有些必不可少的包可能无法安装,因此如果在你尝试安装有些这样 的包时出现错误消息,也不用担心。重要的是让Heroku在部署中安装这些包,下一节就 将这样做。...在Heroku部署中,这个目录总是/app。在本地部署中,这个目录通常是项目文件夹的名称(就我 们的项目而言,为learning_log)。...20.2.8 为部署到 Herohu 而修改 wsgi.py 为部署到Heroku,我们还需修改wsgi.py,因为Heroku需要的设置与我们一直在使用的设置稍 有不同: wsgi.py...但这不会影响你将项目部署到Heroku。.

    16610

    容器是未来吗?

    我正在使用Rails建立一个简单的CRUD应用,我准备部署到Heroku. 这种方式怎么样? -噢不....好吧,我有点糊涂了,让我梳理一下,有一个东西像虚拟化,称为容器,那么我能在Heroku上用它吗? -是l, Heroku已经支持docker, 但是我告诉你: Heroku已经死了....-是的, 你必须有能运行你容器的东西,这样你可以在亚马逊EC2实例中设置,你将CoreOS放于其中,然后运行Docker后台, 然后你就能部署Docker image到其中了....这些都是一种方式,我能简单地部署我的应用吗? -当然. 存储还是Docker和Kubernetes开放问题,网络会花费一点工作,但是就只有这些工作了。 我明白,我会考虑采用它的 -Great!...我需要将我的简单CRUD应用划分为12个微服务, 它们每个都有自己的APIs 能够够彼此调用,可以弹性处理失败,将这些服务放入Docker容器, 加载一个带有8台机器的船队,Docker运行在CoreOS

    2.7K40

    JVM并不是那么重量级

    当我在Heroku上部署了一个小的生产应用时,我第一次克服了对JVM的“恐惧”。这款应用每天只需要完成一项任务。...在玩这个令人印象深刻的演示的时候,我意识到它正在把一个HCMB带到了一个石头剪刀的游戏里。我决定用11月来构建前端,因为我知道11月,而且时间不多了。...你可能惟一需要知道的有用的事情是如何为JVM设置内存,以便在环境的约束中发挥它的魔力。 如何部署到Heroku?java - server -Xmx512m beast.jar。...不需要将应用程序部署到大型应用程序服务器中,你可以很容易地在JAR文件中打包一个性能良好的HTTP服务器。Node的人会这样做,Ruby的人会这么做,但不知何故,JAR文件无法独立于自己的工作?...有时我也会有一些在后台运行的自动化测试。我敢肯定,macOS的内存压缩肯定提供了不少帮助,因为这些JVM进程中的大部分都应该将所有相同的字节加载到内存中。 ? ?

    1.7K50

    开源驱动12 factor现代化项目

    极具影响力的12 factor应用方法论并未涵盖许多近期的技术创新。Heroku 正在领导一项社区主导的努力,以使其保持最新。...现在是将其现代化并使其与我们今天使用技术的方式保持一致的时候了,因此12 factor方法论已开源。 在深入探讨12 factor方法论开源的目的和影响之前,我将首先介绍其背后的原则。...Factor 5:构建、发布、运行 含义:严格分离部署过程的构建、发布和运行阶段。构建阶段编译代码,发布阶段添加特定于环境的配置,运行阶段执行应用程序。...然后,这些脚本构建应用程序并将配置设置应用于测试代码。(这些测试脚本与源代码一起存储在存储库中。)一旦构建的代码通过测试,脚本就会将构建的应用程序部署到指定的运行时环境。...Factor 7:端口绑定 含义:使用端口绑定导出服务,使其自包含并可通过指定的端口访问。 如何应用:某些端口号已成为特定服务的象征。例如,非安全 Web 应用程序的默认端口是 80 端口。

    5210

    Heroku将12 factor应用迁移到开源。下一步是什么?

    该公司创建了这种方法来帮助开发人员在本地开发应用程序,“将其跨云提供商进行可移植打包,然后使其能够弹性运行,并使其成为令人愉悦的构建体验,”Heroku 的首席技术官在《The New Stack Makers...她说:“我们也都认识到,云原生开发人员不再只部署一个应用程序了。”“他们一起部署一个由多个后端存储组成的应用程序系统。...展望未来,Frederick 说,她相信12 factor应用程序项目的维护者“将添加包含有关如何实现某个要素的详细信息的支持文档。我们将提供参考架构。我们将提供一个作为要素实际应用示例的代码。...我甚至认为 Heroku 平台是所有要素的参考架构。” 如何衡量成功?...“我认为,只有在我们结合了包括边缘、[物联网]、无服务器,甚至包括你不会认为是云原生的重量级分布式系统在内的应用程序开发用例时,我们的工作才足以更新12 factor。”

    5610

    聊聊规模化容器

    这个截止日期很有挑战性,我们将从一个没有容器、也没有工具来部署容器的环境开始。但是这样做也很有意义,因为它为我们提供了统一的打包和部署解决方案,使我们能够部署到新的云供应商和地区。...布莱恩·希克森:2015 年以前,我们使用基于虚拟机的开发环境,后来由于本地编译的原生依赖性带来的挑战,常常导致升级失败,从而改用容器。...克里斯·罗格斯:实际上,我们已将所有遗留应用程序迁移到容器。将应用程序 Docker 化是相对直接的,在大多数情况下,可以更轻松地打包依赖项和部署。...困难在于将部署管道的职责从 DevOps 转移到应用工程团队,以及了解如何在 Kubernetes 而非 EC2 实例上调试应用程序。...Q:如何部署和监控容器化应用?你的关键健康指标有哪些? 劳伦·伯纳耶:我们依赖 DataDog 来监控。

    90320

    GitHub 前 CTO:全面微服务是最大的架构错误!网友:这不是刚改完 GitHub 吗

    对于为什么不太看好微服务,Warner 给出的理由如下: 一般来说,整个工程团队在一个大型应用程序中工作(想像 Rails 应用程序中的整个站点),比推理微服务将以何种方式失败要容易得多。...微服务潮流曾被 Heroku 大力推动,或许 Heroku 任职的经历也让 Warner 支持 GitHub 进行微服务改造。“我实际上可以坐在那里倾听并真正为整体架构方法做出贡献。”...GitHub 的做法是先在现有的数据库模式中识别功能边界,并按照这些边界将实际的数据库表分组。GitHub 研发团队将生成的功能分组称为模式域,并记录在 YAML 定义文件中。...GitHub 如何从单体中抽取服务呢?GitHub 认为,依赖方向只能从单体内到单体外,不能反过来,否则最终会得到一个分布式单体。即当从单体中抽取服务时要从核心服务入手,然后逐步到特性层面。...GitHub 的 Rails 应用程序(单体)使用 Twirp(这是一个 gRPC 风格的服务到服务通信框架)和它通信,依赖方向是由内到外。

    1K20

    关于“Python”的核心知识点整理大全63

    每个快照都被称为提交。 使用Git意味着你在试着实现新功能时无需担心破坏项目。将项目部署到服务器时,需要确 保部署的是可行版本。如果你想更详细地了解Git和版本控制,请参阅附录D。 1....你将看到 “学习笔记”的主页,其样式设置正确无误,但你还无法使用这个应用程序,因为我们还没有建 立数据库。 注意 部署到Heroku的流程会不断变化。...然而,你看不到 你在本地部署中输入的任何数据,因为它们没有复制到在线服务器。一种通常的做法是不将本地 数据复制到在线部署中,因为本地数据通常是测试数据。...20.2.14 改进 Heroku 部署 在本节中,我们将通过创建超级用户来改进部署,就像在本地一样。...注意 你使用Heroku提供的免费服务来部署项目时,如果项目在指定的时间内未收到请求或过 于活跃,Heroku将让项目进入休眠状态。

    10810

    FAQ系列之Phoenix

    典型的 Phoenix 部署具有以下内容: 应用 Phoenix 客户端/JDBC 驱动程序 HBase 客户端 Phoenix 客户端/JDBC 驱动程序本质上是一个 Java 库,您应该将其包含在您的...Phoenix 在全局索引维护期间执行本地索引以防止死锁。:当索引更新失败时,Phoenix 还会部分自动重建索引 ( PHOENIX-1112 )。 序列如何在Phoenix工作?...任何失败都将表示为异常。 我可以在 Phoenix 中进行批量数据加载吗? 是的,您可以在 Phoenix 中进行批量插入。.../examples/web_stat.csv 如何将 Phoenix 表映射到现有的 HBase 表?...相同的底层 HConnection 用于到同一个集群的所有连接,因此它或多或少类似于实例化一些对象。 为什么我的查询不进行范围扫描?

    3.3K30

    细谈Hadoop生态圈

    如果NameNode失败,您可以使用收集到的检查点信息重新构建NameNode。在当前的Hadoop版本中,Secondary NameNode 几乎被弃用,并且没有被大量使用。...让我们以单词计数为例来理解MapReduce是如何工作的。...查询编译器:将HQL编译成一个有向无环图。 执行引擎:按编译器生成任务的顺序执行任务。 HiveServer:提供一个节俭的接口和JDBC/ODBC服务器。...没有管理员,HBase无法运行。ZooKeeper是Apache Phoenix中协调服务的关键组件。 Zookeeper处理应用程序的分布式特性,让程序员专注于应用程序逻辑。...Phoenix和其他大数据工具正在获得发展势头,因为它们支持舒适的类似sql的界面、可读性和快速学习曲线。在幕后,Phoenix将SQL查询编译为HBase本机调用,并并行运行扫描或计划进行优化。

    1.6K30

    全网首发:逐一解读云原生应用开发“12-Factors”

    12-Factors经常被直译为12要素,也被称为12原则,12原则由公有云PaaS的先驱Heroku于2012年提出(原文参见12factor.net),目的是告诉开发者如何利用云平台提供的便利来开发更具可靠性和扩展性...违反子原则2和3,会给代码管理和编译工作带来麻烦: 如果一份基准代码可以编译出多个应用,那么这几个应用之间必然会存在不清晰的依赖关系,随着时间的推移,这种依赖关系会变得愈加混乱,以至于修改一个应用的代码...我想大多数的开发者都知道如何通过使用配置文件实现配置和代码的分离,但是这种方式仍然存在一些缺点,例如: 配置文件容易被开发人员不小心提交到代码库中,造成密码、证书等敏感信息泄露。...同时,微服务模式要求应用责权单一以实现可靠性和扩展性,如果在应用本地放置数据库,那么微服务平台将无法通过更换应用的故障实例实现应用的高可用性,也无法通过自动化的横向伸缩实现扩展性,因为应用实例内包含两种性质完全不同的软件...另外,如果将这些服务放在应用本地,那么也无法通过充分利用云平台提供的能力简化运维工作,例如,如果在应用本地放置数据库,而不是使用云平台提供的数据库服务,那么显然无法利用数据库服务提供的自动备份、安全、和高可用等特性

    1.2K91

    在 10 分钟内实现安全的 React + Docker

    假如你已经构建了一个 React 应用,但是现在需要部署它。应该怎么做?首先,最好选择一个云提供商,因为它们一般成本低而且部署容易。 大多数云提供商都提供了一种部署静态站点的方法。...用 npm start 启动你的应用。你将被重定向到 Okta 进行身份验证,然后返你的应用。如果你没有重定向,那是因为你已经登录。请在 private 窗口中重试来查看登录过程。...我承认这是一个非常简单的应用,但我们会用它来演示如何用 Docker 进行容器化。 为什么要使用Docker? 你可能会问:“为什么要用 Docker?这不会使事情复杂化吗?” 是的我同意。...在短短几分钟内就把你的 React 应用做了 docker 化。? 把将你的 React App 部署到 Heroku 你的应用要直到正式投入生产时才会真正的存在,所以让我们把它部署到 Heroku。...幸运的是,Heroku 确实提供了 cnb-shim (https://github.com/heroku/cnb-shim),你可以用它来使其工作。

    20.1K30

    HBase 深入浅出

    因为这样可能会导致数据不一致。如果有多个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。...我环境的 HBase 是通过 Ambari HDP2.4 部署的,其中的 HBase 是 1.1 的版本,因此我下载的是下图中的 phoenix-4.7.0-HBase-1.1。 图 6....原因很简单,当在 Phoenix 创建一张表时,Phoenix 是将表进行了重组装。而对 HBase Shell 创建的表 Phoenix 并未进行加工,所以无法直接显示。...例如下图中,我使用 Phoenix 创建了一张表 t1,包含了 name 和 age 两个列,并插入了两行数据。具体的命令如下图: 图 10. 如何在 Phoenix 中创建表 ?...总结 对于 HBase 还有很多内容需要介绍,例如使用 Java API 开发应用,快速部署使用(涉及 Ambari 以及 HBase 部署模式)、HBase Shell 以及如何集成 Hive 和 HBase

    1.7K111

    Phoenix常见问题

    典型的Phoenix部署具有以下特点: • 应用 • Phoenix Client / JDBC驱动程序 • HBase客户端 Phoenix客户端/ JDBC驱动程序本质上是一个Java库,您应该在...05 我可以在Phoenix表中看到各个单元的时间戳吗?这是常用的东西吗? 您可以将HBase的本机行时间戳映射到Phoenix列。...Phoenix在全局索引维护期间执行本地索引以防止死锁:Phoenix还会在索引更新失败时部分地自动重建索引(PHOENIX-1112 )。 07 序列在Phoenix中如何工作?...任何失败都将表示为异常。 09 我可以在Phoenix中进行批量数据加载吗? 是的,您可以在Phoenix中进行批量插入。...是的,只要使用Phoenix数据类型。您必须使用异步索引并手动更新它们,因为Phoenix不会知道任何更新。 12 什么是路标?

    1.4K30

    7 个原则和 10 种策略让你成为 10x 开发者

    如果他们找到一个比原来快 10 毫秒的工具,他们都会想重写整个应用来使用它。但是当涉及到部署代码的频率时,他们往往会更加谨慎。...你会把 bug 部署到生产环境,所以你必须准备好修复生产环境的 bug 。如果调试很困难、部署修复很慢,那会拖慢你,因为你会增加冗长的 QA 流程,等你意识到的时候,你的部署频率可能只有每几周一次。...原则 7 :周五部署 健康的工程组织每天部署多次,包括周五。 如果你害怕在周五部署,很可能是因为: 你的部署不够可靠。 你的部署很慢。 你没有好的监控和报警。 你的应用难以调试。 你没有测试。...将部署与发布分离可以加快两者的速度,因为工程师可以在产品管理准备好发布之前,在代码准备就绪时就部署。 它也加快了发布速度,因为现在你可以立即发布一个特性。并且无需部署就可以立即回滚一个特性。...这导致了 Heroku 的诞生,全世界的开发者都为此欢呼雀跃。但这种兴奋并不持久,因为运维人员并不高兴。事实证明, Heroku 这样的抽象在大公司是无法扩展的。

    9710

    三周学会小程序第三讲:服务端搭建和免费部署

    导入完成以后等待 Maven 下载依赖,下载依赖完成以后直接找到 Application.java 类右键运营即可启动服务。...这样一来你就掌握了项目和本地部署的技能,那么微信小程序需要访问远端的地址才能工作,怎么部署到远端呢?...3,输入如下命令,当然后面的 jiuask 应该是你的名称: heroku git:remote -a jiuask 这个步骤就是在添加一个 Heroku 的 Git 仓库,当你提交代码到 Heroku...别着急激动,我们还是简单说一下为什么能部署成功: 1,小编的pom.xml里面配置项目名称是jiuask-server所以编译打包以后会有一个jiuask-server-1.0.0.jar 的 jar...user等于其他情况均跳转 error 页面并显示登 **用户登录失败。

    2K10
    领券