Is anyone aware of a Phoenix 1.4.0 Docker image?
What for?
Just use any elixir enabled dockerfile and build the release on that, move the release to any erlang enabled image after that and run them there (or if you included ERTS you could try to go even FROM scratch
or other minimal containers without erlang preinstalled).
If though you want to simply run mixh phx.server
, you still can use any elixir enabled image. There is no need for a special phoenix 1.4 image.
Of course you might need to provide additional dependencies like node on the build stage etc.
Of course yes, I had a problem before because dev machine was using 1.4@headrev when 1.3.x was the current release. When I built the Docker image, it used 1.3.x and failed. I shouldnāt have that problem anymore because the versions will be the same.
Then you probably had not properly constrained your requirements in your mix.exs
.
I donāt install phoenix for you, but I make it pretty damn easy. I keep it pretty up to date if you are into that kind of thing, and have some updates to push this week.
It wasnāt a compile-time error, but a runtime error, so no, I donāt think so.
edit ā
here is the link:
As I said, Iām not a friend of those images.
Just start with a bare elixir or node image and install the other, do not pull in under any circumstances phx_gen
into that image.
Donāt install any archive in that image besides hex
and rebar
via their corresponding local
commands.
Sure, you have a decent point there. Thanks.
Nice, thx for sharing this!
You ask the question and then you detail all the extra steps. Thatās exactly what the official image would be for: not to have to worry about those steps!
When I look at my Dockerfile
, I donāt think this comes out-of-the-box:
FROM elixir:1.8.2
# Install node
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN apt-get update
RUN apt-get install -y nodejs
RUN apt-get install -y --no-install-recommends yarn
RUN mix local.hex --force
RUN mix local.rebar --force
My comments:
- I donāt know what
mix local.hex
andlocal.rebar
are for, but apparently I need it. - I have to maintain this installation, especially the node version, which will move in the future
- Would be simpler if
node
+yarn
would come pre-installed
For all those reasons, Iād be in favor of having a official phoenix docker image.
They install hex
and rebar
in a way that they can be used by `mix to fetch dependencies/compile rebar projects.
You do not need node, as JavaScript should already be precompiled in the build step.
This is exactly what @beardedeagle s images are for.
Just to cite his announcement from the slack: