Phoenix 1.4.0 Docker image?

Is anyone aware of a Phoenix 1.4.0 Docker image?

1 Like

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 | bash
RUN curl -sS | apt-key add -
RUN echo "deb 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 and local.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:

1 Like