首页
学习
活动
专区
工具
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 之上,变成了一个单独的微服务,这是由于没有任何使其更加集成的机制。

4.6K40

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

介绍 Elixir构建于Erlang编程语言之上,是一种功能性编程语言,因其专注于开发人员的工作效率以及因为编写高度并发和可伸缩的应用程序而易于使用而闻名。...DistilleryElixir应用程序编译成一个包,然后您可以在其他地方部署。它还生成允许热交换代码的软件包,这意味着您可以在不停机的情况下升级实时应用程序。...在本教程结束时,您将拥有一个可以执行以下操作的命令: 构建与您的生产环境兼容的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。.

    15510

    容器是未来吗?

    正在使用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

    聊聊规模化容器

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

    90020

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

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

    10510

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

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

    1K20

    在 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),你可以用它来使其工作

    19.9K30

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

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

    1.1K91

    FAQ系列之Phoenix

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

    3.2K30

    细谈Hadoop生态圈

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

    1.6K30

    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.3K30

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

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

    8910

    Ansible和Docker的作用和用法

    当然,你也会收获一些实践知识,那就是如何通过部署 Ansible 和 Docker 来为 Rails 应用搭建一个完整的服务器环境。 也许有人会问:你怎么不去用 Heroku?...最后,骨子里是一个工匠,非常了解如何把零件拼凑在一起工作Heroku 的基础模块是 Linux Container,而 Docker 表现出来的多功能性也是基于这种技术。...这种更简单的操作模式让把精力集中在如何将我的技术设施私有化,提高了工作效率。与 Unix 的模式一样,Ansible 提供大量功能简单的模块,我们可以组合这些模块,达到不同的工作要求。...装上 Ruby、MySQL 和 Redis Docker 镜像后,部署应用花费了4分45秒。另外,如果从一个已存在的主应用镜像编译出一个新的 Docker 应用镜像出来,只需花费2分23秒。...综上所述,部署一套新的 Rails 应用,解决其所有依赖关系(包括 MySQL 和 Redis),只需花2分钟多一点的时间就够了。

    2.1K20

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

    导入完成以后等待 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 页面并显示登 **用户登录失败

    1.9K10

    初学Node.js并部署好雨云

    部署网上 的服务器已经正常运行了,可是它只是跑在的本地,如果想要让更多的人访问我的网站,需要将它放到互联网上我们需要选择一个云平台来部署我们的网站。...对于云平台我们有很多选择,比如亚马逊、Heroku等等,但因为众所周知的原因,国外的云服务我们使用起来并不方便,甚至无法访问。...所以我选择了好雨云来部署网站,好雨云是一个云端的应用管理平台,也就是我们通常所说的PaaS(platform as a service),它允许你自动部署web应用,支持几种构建方式,比如我使用就是源码构建...部署好雨云 OK,这里我们的网站写好了,需要将代码提交到好雨云来部署,点新建应用后,好雨平台会给我们一个git代码仓库的地址,我们只需要将代码提交到这个地址就可以了。...总结 我们写了不到60行代码,将我们的web服务器构建了起来,并写了一个演示用的博客页面,也许你会说这太简单了,没错,确实是这样,但通过这些你可以快速的了解web服务器是如何工作

    94761
    领券