Dockerfile.erb - use ruby in your dynamic Dockerfile
gem install dockerb
or standalone
curl https://rubinjam.herokuapp.com/pack/dockerb > dockerb && chmod +x dockerb
docker
generates a Dockerfile
from your Dockerfile.erb
(delete it after building / do not commit it)
RUN echo <%= "hello" + " " + "world" %>
---
RUN echo hello world
Pre-install a slow gem so re-building the container is fast
- picks the correct version from Gemfile.lock
- use before Adding Gemfile.lock or bundling
<%= install_gem 'nokogiri' %>
---
RUN gem install -v 1.6.3 nokogiri
- add as little as necessary to bundle
- do not fail when re-locking fails due to git not being installed (
|| bundle check
)
<%= bundle %>
---
ADD Gemfile /app/
ADD Gemfile.lock /app/
ADD vendor/cache /app/vendor/cache
RUN bundle install --quiet --local --jobs 4 || bundle check
Inside of ruby:
Dockerb.compile do
... do other things ...
end
# Dockerfile is cleaned up
Michael Grosser
michael@grosser.it
License: MIT