sc4224
I’m running Phoenix 1.3 with Elixir 1.6 and Erlang OTP 20 in a docker container.
I use comeonin ~> 4.0 and bcrypt_elixir ~> 1.0
When I try to call the function Comeonin.Bcrypt.hashpwsalt(WITH_MY_PASSWORD), the error returned is: function Bcrypt.Base.gensalt_nif/3 is undefined (module Bcrypt.Base is not available)
I’ve read other forums and they all point to the fact that Bcrypt 1.0 is only compatible with erlang 20. So I don’t really know what the issue is here.
Trending in Questions
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
Documentation
While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
Hello,
I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind.
However, when I launch mix phx.server, I get an error...
New
Hi everyone,
I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding.
I sta...
New
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
I’m working on a small exercise involving update_in/3, and I came up with this solution:
data = %{
name: "Periodic Table",
category:...
New
I’ve got trouble wrapping my head around the order in which functions are called in this snippet (from Phoenix’s authentication):
toke...
New
Other Trending Topics
There’s heavy doomer energy on many of the forum threads.
This community has traditionally been optimistic and forward thinking. Now th...
New
Edit: 2026 May 15 - This post is archived.
Mob is alive!!
Main docs: mob v0.7.11 — Documentation
A bit of explanation for the slightly c...
New
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hi everyone!
The first release candidate for the Expert language server project is now available!
We’ve published a press release detai...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ai
- #ecto-query
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #metaprogramming
- #hex










Showing Posts 1 to 10- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
NobbZ
Are you able to share your
Dockerfileand yourmix.exs(thedepspart at least)?sc4224
Here is the dockerfile for my phoenix app
# base image elixer to start with
FROM elixir:1.6
NobbZ
Why do you
cdintodeps/bcrypt_elixirand runmake clean && makethere? That feels wrong…My assumption is, that you do this, because the deps folder from your host is put into your docker container during
COPY ./my_app /appand therefore you have build artifacts which do not match the system in the container and you try to “repair” this by force rebuilding in docker? This probably doesn’t work, as there might still old artifacts for the wrong architecture remain in the also copyed_buildfolder.Instead you should properly
.dockerignorethedepsand_buildfolders to really be sure, that nothing wrong slips in.sc4224
this is the reason why i did it:
https://github.com/riverrun/comeonin/issues/64
if I ignore my_app/deps, does that mean that i can’t run mix deps.get in my dockerfile anymore? What do i do then?
NobbZ
No, it actually means that you have to do it. Without ignoring it, the
depsand_buildfolder from your host will be copied over into the container, wasting space in the layer is one of the downsides, the other is, that they might contain artifacts that are incompatible with the containerized erlang and elixir.Also the linked issue does not affect a docker container, at least not if it is build correctly. As a correctly built docker container should never see old artifacts in
depsand_buildas they never should exist on the container prior tomix deps.getandmix deps.compile/mix compile.The ticket above really only affects those that compiled a NIF on OTP N, update erlang and get back to that project, but now have OTP N+1. Then the NIF wouldn’t be recognized, and in that issue a nasty workaround was shown. The proper way to handle this is actually
mix do deps.clean bcrypt_elixir, deps.build.But to be honest, my general advise is to simply
rm -rf deps _build; mix do deps.get, deps.compileafter updating Erlang or Elxir. Just to make sure that all libraries used use the latest enhencements of the language.sc4224
I don’t understand, I removed both deps and _build folders. Does the command
RUN mix deps.get && mix deps.compileget included in the dockerfile or not. When I rundocker-compose buildthendocker-compose up, Because I put deps and _build in the dockerignore file I get this error:Or do I run
mix deps.get and mix deps.compilein the terminal first before runningdocker-compose buildand then subsequentlydocker-compose up?Either way, I still get the same error and it doesn’t work
Here is my repository you can check it out and see what I’m doing wrong, I have two dockerfiles since I want to run a golang microservice along with my web server:
https://github.com/sc4224/genesys
NobbZ
Of course it does, it is needed to fetch and compile the dependencies.
sc4224
ok so i still get the error saying that the dependency is not available
NobbZ
Which dependency is not available? When do you get that error message? Do you get any errors or messages during building container?
sc4224
The errors are the errors mentioned above. This happens when I run docker-compose build. Take a look at my repository above, is it the fact that I am putting too many services in one container, possibly giving rise to errors when I reference folder paths?