silverdr
Function :public_key.cacerts_get/0 is undefined or private
I have a mix release application running in a container but it seems to have problems with cacerts. If I run:
docker exec -it 1773f1bd7685 bin/myapp eval ':public_key.cacerts_get()'
I get:
** (UndefinedFunctionError) function :public_key.cacerts_get/0 is undefined or private
(public_key 1.12.0.2) :public_key.cacerts_get()
(stdlib 3.17.2.4) erl_eval.erl:685: :erl_eval.do_apply/6
(elixir 1.16.2) lib/code.ex:572: Code.validated_eval_string/3
What do I need to do in order to have the said function available?
Marked As Solved
D4no0
OTP-24 doesn’t have the cacerts_get/0 in public_key: Erlang -- public_key
Also Liked
LostKobrakai
That version of OTP and elixir are you using?
D4no0
I’m not sure what are you looking for, wouldn’t it be easier to upgrade to OTP-26.2.5+ where this issue was patched?
D4no0
While I understand this, I am also not very positive that you change versions everyday. I just now noticed that docker builds from hex do not come with specific OTP versions, which is not the greatest thing now that I think about it.
Personally I would take a look at the scripts for building these images and customize one of them for specific elixir and OTP version. I would even be inclined to help you make this into an official feature, as I use docker for almost all of my deploys.
LostKobrakai
Those are not the docker builds. However there were some issues resolved today: Missing latest images on docker hubs · Issue #187 · hexpm/bob · GitHub
silverdr
I don’t. This time I had to though.
They do. You have to look here:
https://hub.docker.com/r/hexpm/elixir/tags
And that’s the easiest way and smallest image sizes. I did custom images before but those are leaner and faster to build “runner” images.
Probably yes so that’s an option to wait a (probably only) a little longer, but…
I do agree. That’s why I had everything running on 26 already for some time. But I got bitten by this very nastily so even if 26.2.5 pops up soon (which I think it will) I shall still be having a very close eye on how it behaves and whether the fix really fixed things and not introduced other problems, etc.
But right, maybe I am a bit too impatient and just wanted to fix all things around this area right away so that I don’t have to return to it later







