elixir-runtime icon indicating copy to clipboard operation
elixir-runtime copied to clipboard

More customization of runtime image

Open alizain opened this issue 6 years ago • 1 comments

I'd like to be able to customize the runtime image further. Would you be interested in accepting a PR that modifies the Dockerfile-release.eex file like so (with appropriate changes to the generator app)?

################################################################################
## 2. Application runtime image
## From the OS base image, installs the release built above, and sets the
## entrypoint. This is the final image executed by Google App Engine.

FROM <%= @os_image %>

+  ## If your application needs additional steps when constructing the runtime image,
+  ## use the `runtime_image_directives` option to specify them
+  <%= for directive <- @runtime_image_directives do %>
+  <%= directive %>
+  <% end %>
-  ...

## Copy built release from build stage into /app
COPY --from=app-build /app/_build/<%= @mix_env %>/rel/<%= @release_app %> /app/

## Command to start the release.
CMD <%= @entrypoint %>

alizain avatar Nov 25 '19 12:11 alizain

This seems risky. It's very powerful, and there's a lot of opportunity for mistakes to be made. Additionally, it opens the door for future incompatibilities; if an app has inserted custom directives that conflict with future changes made to the normal Dockerfile template.

If you really need to customize the Dockerfile this closely, I would recommend simply writing your own Dockerfile, and using runtime: custom. (See documentation.)

dazuma avatar Dec 14 '19 21:12 dazuma