Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Learning Docker Learning Docker
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • examples
  • Learning DockerLearning Docker
  • Issues
  • #1

Closed
Open
Created Apr 07, 2018 by Brian Hoppus@hoppus

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
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking

© 2021 O’Reilly Media, Inc. All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. Terms of Service • Privacy Policy • Editorial Independence