Fl4m3Ph03n1x
Cannot find libtinfo.so.6 when launching elixir app
Background
I am using elixir 1.9 with erlang 22.0 and I am using the command mix release. However when I try to run my app with _build/dev/rel/andy/bin/my_app start start I get an error:
Error
This is the error I get when trying to run it:
/home/devops/_build/dev/rel/my_app/erts-10.4.3/bin/beam.smp: error while loading shared libraries: libtinfo.so.6: cannot open shared object file: No such file or directory
To fix it I tried running sudo apt-get install libtinfo.so.6 but it doesn’t look like it exists:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libtinfo.so.6
E: Couldn't find any package by glob 'libtinfo.so.6'
E: Couldn't find any package by regex 'libtinfo.so.6'
This is my OS operation:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
How can I fix this?
Marked As Solved
NobbZ
You probably build your release on a different setup, one which had libtinfo.so.6 available.
Please build the release on an Ubuntu 16.04.6 and nothing else.
edit
$ curl "https://packages.ubuntu.com/xenial/allpackages?format=txt.gz" | zgrep libtinfo
libtinfo-dev (6.0+20160213-1ubuntu1) developer's library for the low-level terminfo library
libtinfo5 (6.0+20160213-1ubuntu1) shared low-level terminfo library for terminal handling
libtinfo5-dbg (6.0+20160213-1ubuntu1) debugging/profiling library for the low-level terminfo library
For 16.04 only libtinfo5 is available as it seems.
It contains the following files (Ubuntu – Error):
/lib/x86_64-linux-gnu/libtinfo.so.5/lib/x86_64-linux-gnu/libtinfo.so.5.9/usr/lib/x86_64-linux-gnu/libtic.so.5/usr/lib/x86_64-linux-gnu/libtic.so.5.9/usr/share/doc/libtinfo5/TODO.Debian/usr/share/doc/libtinfo5/changelog.Debian.gz/usr/share/doc/libtinfo5/copyright
Also Liked
Manzanit0
Just for the record, I came across this yesterday, same issue, etc. and this is the final working Dockerfile I came up with, in case anybody finds it useful.
FROM elixir:1.10.3 AS app_builder
ENV MIX_ENV=prod \
LANG=C.UTF-8
# Build local package repository
RUN mix local.hex --force && \
mix local.rebar --force
RUN mkdir /app
WORKDIR /app
# Compile dependencies
COPY mix.exs .
COPY mix.lock .
RUN mix deps.get && mix deps.compile
# Let's make sure we have node
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \
apt-get install -y nodejs
# Compile assets
COPY assets ./assets
RUN npm install --prefix ./assets && \
npm run deploy --prefix ./assets
# Now, let's go with the actual elixir code. The order matters: if we only
# change elixir code, all the above layers will be cached ~ less image build time.
COPY config ./config
COPY lib ./lib
COPY priv ./priv
# Final build step: digest static assets and generate the release
RUN mix phx.digest && mix release
FROM debian:buster-slim AS app
ENV LANG=C.UTF-8
RUN apt-get update && apt-get install -y openssl
RUN useradd --create-home app
WORKDIR /home/app
COPY --from=app_builder /app/_build .
RUN chown -R app: ./prod
USER app
CMD ["./prod/rel/cookbook/bin/cookbook", "start"]
NobbZ
Please also add deps to your .dockerignoe. Some packages create artifacts in there ![]()
Also, I can’t see where you define base, but you reference it. Just from looking at it, this wont actually work.
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








