Dockerfile build error chapter4, example 2
After building the image:
docker build -t hoppus/counter .
I attempt to run the image with:
docker run -p 4567:4567 --link redis:redis hoppus/counter
I receive the following error:
/usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- json (LoadError)
from /usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/gems/2.4.0/gems/rack-2.0.4/lib/rack/session/cookie.rb:6:in `<top (required)>'
from /usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/gems/2.4.0/gems/sinatra-2.0.1/lib/sinatra/base.rb:1775:in `<class:Base>'
from /usr/lib/ruby/gems/2.4.0/gems/sinatra-2.0.1/lib/sinatra/base.rb:894:in `<module:Sinatra>'
from /usr/lib/ruby/gems/2.4.0/gems/sinatra-2.0.1/lib/sinatra/base.rb:22:in `<top (required)>'
from /usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/gems/2.4.0/gems/sinatra-2.0.1/lib/sinatra/main.rb:1:in `<top (required)>'
from /usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/gems/2.4.0/gems/sinatra-2.0.1/lib/sinatra.rb:1:in `<top (required)>'
from /usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in `require'
from /usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in `rescue in require'
from /usr/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:39:in `require'
from counter.rb:2:in `<main>'
The fix seems to be to adjust line 3 of the Dockerfile to read:
RUN apk update && apk add ruby ruby-json