Comments (17)
I used container stack with heroku using a Dockerfile instead
from heroku-buildpack-elixir.
I think this is happening because elixir is looking for libtinfo5
, which is present on the cflinuxfs3/Bionic/18.04 stack (i.e. here). But, on the cflinuxfs4/Jammy/22.04 stack, we see that this library was upgraded to libtinfo6
(here).
My assumption is that this is because the buildpack provides pre-built binaries, which are pre-compiled for cflinuxfs3/Bionic/18.04, and hence aren't compatible with cflinuxfs4/Jammy/22.04.
I think this buildpack needs to update its dependencies to work with cflinuxfs4.
The other difference that might be relevant is that cflinuxfs4 does not provide the dev
package, but I don't think that's the issue based on the error message above
from heroku-buildpack-elixir.
I tried a branch from April just as a what if and I got;
-----> Checking Erlang and Elixir versions
Will use the following versions:
- Stack
- Erlang 21.2.5
- Elixir 1.10.2
Will export the following config vars: - Config vars DATABASE_URL
- MIX_ENV=prod
-----> Stack changed, will rebuild
-----> Cleaning all cache to force rebuilds
-----> Fetching Erlang 21.2.5
-----> Installing Erlang 21.2.5 (changed)
-----> Fetching Elixir v1.10.2
-----> Installing Elixir v1.10.2 (changed)
[/tmp/buildpack-cache/final/elixir-v1.10.2.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of /tmp/buildpack-cache/final/elixir-v1.10.2.zip or
/tmp/buildpack-cache/final/elixir-v1.10.2.zip.zip, and cannot find /tmp/buildpack-cache/final/elixir-v1.10.2.zip.ZIP, period.
chmod: cannot access '/tmp/app-bits340683100/.platform_tools/elixir/bin/*': No such file or directory
-----> Installing Hex
-----> Installing rebar
/var/lib/buildpacks/8b9035807842a4e4dbe009f3f1478127/lib/elixir_funcs.sh: line 87: mix: command not found
/var/lib/buildpacks/8b9035807842a4e4dbe009f3f1478127/lib/elixir_funcs.sh: line 92: mix: command not found
-----> Fetching app dependencies with mix
/var/lib/buildpacks/8b9035807842a4e4dbe009f3f1478127/lib/app_funcs.sh: line 41: mix: command not found
2021/06/24 16:13:39 compile script failed exit status 1
2021/06/24 16:13:39 failed to create droplet: BuildpackCompileFailed: exit status 223 - internal error: failed to compile droplet: exit status 1
Error staging application: Staging error: failed to create droplet: BuildpackCompileFailed: exit status 223 - internal error: failed to compile droplet: exit status 1
FAILED
from heroku-buildpack-elixir.
@callumcieciala, did you figure this out?
from heroku-buildpack-elixir.
@NduatiK nope, I scoured the internet and after chatting to a few people in elixir + cloudfoundry slack channels. Nobody had any ideas with this specific issue, I've moved on to alternative solutions.
from heroku-buildpack-elixir.
Thanks I've been trying to deploy elixir on Digital Ocean using Dokku but no luck either. I'll keep at it and give up if a few hours go by.
from heroku-buildpack-elixir.
i still have this problem in sep 2021, may be some internals or local .so files missing at heroku's servers.
from heroku-buildpack-elixir.
Also seeing this on a recent production deploy on Gigalixir.
from heroku-buildpack-elixir.
I think this is related to the Ubuntu version. I had success with Ubuntu 18. I can't recall how I set that for Heroku or Gigalixir. Probably an .env file.
I check it out and report back
Edit:
On Heroku, I added a .env file to my project root that specified my target stack.
# .env
STACK="heroku-18"
from heroku-buildpack-elixir.
I expect Ubuntu version is the issue. I just tried upgrading heroku to heroku-22 stack and got this
remote: -----> Checking Erlang and Elixir versions
remote: Will use the following versions:
remote: * Stack heroku-22
remote: * Erlang 22.1.8
remote: * Elixir v1.13.1
remote: -----> Stack changed, will rebuild
remote: -----> Fetching Erlang 22.1.8 from https://s3.amazonaws.com/heroku-buildpack-elixir/erlang/cedar-14/OTP-22.1.8.tar.gz
remote: -----> Installing Erlang 22.1.8 (changed)
remote:
remote: -----> Fetching Elixir v1.13.1 for OTP 22 from https://repo.hex.pm/builds/elixir/v1.13.1-otp-22.zip
remote: -----> Installing Elixir v1.13.1 (changed)
remote: -----> Installing Hex
remote: /app/.platform_tools/erlang/erts-10.5.6/bin/beam.smp: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
remote: ! Push rejected, failed to compile Elixir app.
I don't know the solution
from heroku-buildpack-elixir.
Having the same issue with buildpack
from heroku-buildpack-elixir.
I inherited an Erlang app (I don't speak Erlang) and solved this problem by updating elixir_buildpack.config:
erlang_version=24.2
elixir_version=1.14.0
and mix.exs:
elixir: "~> 1.14.0",
Luckily, the app still builds. Wish me luck on the push from staging to live.
from heroku-buildpack-elixir.
@pbjTEG How did you manage to make this work? When I try this Erlang version, I get
Sorry, Erlang 24.2 isn't supported yet. For a list of supported versions, please see https://github.com/HashNuke/heroku-buildpack-elixir#version-support
from heroku-buildpack-elixir.
As @joshcrews, this relates to the Heroku stack version. When I downgrade to heroku-20
stack, the compilation issue does not occur. Thus the workaround for now is to use the previous stack:
$ heroku apps:stacks:set heroku-20
from heroku-buildpack-elixir.
@pbjTEG How did you manage to make this work? When I try this Erlang version, I get
Sorry, Erlang 24.2 isn't supported yet. For a list of supported versions, please see https://github.com/HashNuke/heroku-buildpack-elixir#version-support
I probably should have mentioned that I'm using an Elixir buildpack, https://github.com/HashNuke/heroku-buildpack-elixir
You can get more information about it here: https://elements.heroku.com/buildpacks/heroku/heroku-buildpack-erlang
from heroku-buildpack-elixir.
Setting the heroku stack:set heroku-20
worked for me
from heroku-buildpack-elixir.
Also I assume that the heroku-20
stack is based on Ubuntu 20.04/Focal, which has a lot of similar libraries as Bionic/18.04, which would explain why using that stack works.
from heroku-buildpack-elixir.
Related Issues (20)
- Is there anyway to add an aditional binary that can be used at compile time. HOT 3
- Support the new Cloud Native Buildpack (CNB) format.
- Will use cached Elixir version even if Erlang version changes HOT 6
- Doesn't work with Heroku-20 Stack HOT 8
- Crypto.app not found HOT 1
- Too many levels of symbolic links HOT 10
- Error building with Heroku-20 stack HOT 5
- Update Readme With Updated Default Versions
- Buildpack incompatible with building in /app HOT 13
- Build isn't marked as failing if errors occur
- Use OTP builds from hexpm/bob HOT 1
- Cache isn't cleared on stack change which results in shared library errors HOT 3
- Can't deploy on Heroku-20, Erlang 23, Elixir 1.12 HOT 1
- gzip: stdin: not in gzip format HOT 2
- Can't deploy on Heroku-20, Erlang 21.2.5, Elixir 1.12.2 HOT 2
- Support for Stack Heroku-22 HOT 1
- Issues upgrading to Heroku 22 HOT 4
- mix releases should be required (or suggested) for Elixir 1.15
- Deployment of poncho apps
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from heroku-buildpack-elixir.