Docker ruby ​​контейнер с разбивкой - Ошибка загрузки - PullRequest
0 голосов
/ 24 апреля 2018

Я создал Dockerfile:

FROM ruby:2.2.3

WORKDIR /usr/src/app


RUN apt-get update && \
    apt-get -y install nodejs && \
    apt-get -y clean

COPY Gemfile Gemfile.lock ./
RUN bundle install
RUN bundle update

COPY ./dashboards ./dashboards
COPY ./widgets ./widgets
COPY ./jobs ./jobs
COPY ./config ./config
COPY ./config.ru .
COPY ./lib ./lib
COPY ./assets ./assets

ENV PORT 3030
EXPOSE $PORT

CMD ["/bin/sh"]

Я не могу запустить smashing в контейнере Docker.Я получаю LoadError.Gemfile просто ссылается на smashing для установки необходимых пакетов.К сожалению, если я запускаю свой контейнер и запускаю smashing start, я получаю следующую ошибку:

/usr/src/app/jobs/scheduler.rb:4:in `require_relative': cannot load such file -- /usr/src/app/lib/imelk_service/imelkCalls.rb (LoadError)
    from /usr/src/app/jobs/scheduler.rb:4:in `<top (required)>'
    from /usr/local/bundle/gems/backports-3.11.3/lib/backports/std_lib.rb:9:in `require'
    from /usr/local/bundle/gems/backports-3.11.3/lib/backports/std_lib.rb:9:in `require_with_backports'
    from /usr/local/bundle/gems/smashing-1.1.0/lib/dashing/app.rb:169:in `block in require_glob'
    from /usr/local/bundle/gems/smashing-1.1.0/lib/dashing/app.rb:168:in `each'
    from /usr/local/bundle/gems/smashing-1.1.0/lib/dashing/app.rb:168:in `require_glob'
    from /usr/local/bundle/gems/smashing-1.1.0/lib/dashing/app.rb:179:in `<top (required)>'
    from /usr/local/bundle/gems/smashing-1.1.0/lib/dashing.rb:3:in `require'
    from /usr/local/bundle/gems/smashing-1.1.0/lib/dashing.rb:3:in `<top (required)>'
    from config.ru:1:in `require'
    from config.ru:1:in `block in <main>'
    from /usr/local/bundle/gems/rack-2.0.5/lib/rack/builder.rb:55:in `instance_eval'
    from /usr/local/bundle/gems/rack-2.0.5/lib/rack/builder.rb:55:in `initialize'
    from config.ru:1:in `new'
    from config.ru:1:in `<main>'
    from /usr/local/bundle/gems/thin-1.7.2/lib/rack/adapter/loader.rb:33:in `eval'
    from /usr/local/bundle/gems/thin-1.7.2/lib/rack/adapter/loader.rb:33:in `load'
    from /usr/local/bundle/gems/thin-1.7.2/lib/thin/controllers/controller.rb:182:in `load_rackup_config'
    from /usr/local/bundle/gems/thin-1.7.2/lib/thin/controllers/controller.rb:72:in `start'
    from /usr/local/bundle/gems/thin-1.7.2/lib/thin/runner.rb:203:in `run_command'
    from /usr/local/bundle/gems/thin-1.7.2/lib/thin/runner.rb:159:in `run!'
    from /usr/local/bundle/gems/thin-1.7.2/bin/thin:6:in `<top (required)>'
    from /usr/local/bundle/bin/thin:16:in `load'
    from /usr/local/bundle/bin/thin:16:in `<main>'

Я пытаюсь выяснить, почему.Я проверил, что файл ìmelkCalls.rb существует.За пределами Docker мой код работает, так что этого не может быть.Я предполагаю, что это некоторые недостающие зависимости, но я понятия не имею, какой это может быть.Я пробовал это с Ruby версий 2.5 и 2.3, но я получаю ту же ошибку.

Надеюсь, у кого-то есть представление о том, что я делаю неправильно, или он может указать мне правильное направление.

Дополнительная информация, которая может быть полезной (из контейнера Docker):

версия ruby: ruby ​​2.2.3p173 (2015-08-18 редакция 51636) [x86_64-linux]

версия гема: 2.5.0

версия пакета: версия пакета 1.10.6

Gemfile.lock:

GEM
  remote: https://rubygems.org/
  specs:
    backports (3.11.3)
    coffee-script (2.4.1)
      coffee-script-source
      execjs
    coffee-script-source (1.12.2)
    concurrent-ruby (1.0.5)
    daemons (1.2.6)
    et-orbi (1.1.0)
      tzinfo
    eventmachine (1.2.5)
    execjs (2.7.0)
    multi_json (1.13.1)
    mustermann (1.0.2)
    rack (2.0.5)
    rack-protection (2.0.1)
      rack
    rufus-scheduler (3.4.2)
      et-orbi (~> 1.0)
    sass (3.4.25)
    sinatra (2.0.1)
      mustermann (~> 1.0)
      rack (~> 2.0)
      rack-protection (= 2.0.1)
      tilt (~> 2.0)
    sinatra-contrib (2.0.1)
      backports (>= 2.0)
      multi_json
      mustermann (~> 1.0)
      rack-protection (= 2.0.1)
      sinatra (= 2.0.1)
      tilt (>= 1.3, < 3)
    smashing (1.1.0)
      coffee-script (~> 2.4.1)
      execjs (~> 2.7.0)
      rack (~> 2.0.0)
      rufus-scheduler (~> 3.4.2)
      sass (~> 3.4.24)
      sinatra (~> 2.0.0)
      sinatra-contrib (~> 2.0.0)
      sprockets (~> 3.7.1)
      thin (~> 1.7.0)
      thor (~> 0.19.4)
    sprockets (3.7.1)
      concurrent-ruby (~> 1.0)
      rack (> 1, < 3)
    thin (1.7.2)
      daemons (~> 1.0, >= 1.0.9)
      eventmachine (~> 1.0, >= 1.0.4)
      rack (>= 1, < 3)
    thor (0.19.4)
    thread_safe (0.3.6)
    tilt (2.0.8)
    tzinfo (1.2.5)
      thread_safe (~> 0.1)

PLATFORMS
  ruby

DEPENDENCIES
  smashing

BUNDLED WITH
   1.16.1

1 Ответ

0 голосов
/ 24 апреля 2018

В вашей структуре каталогов есть ошибка именования, которая приводит к вашей ошибке.

К сожалению, люди, которые не имеют доступа к хранилищу, не могут устранить вашу ошибку.

Для ясности, файл (который ищет smashing) lib/imelk_service/imelkCalls.rb называется lib/imelk_service/ImelkCalls.rb (отметьте заглавную букву I от Imelk).Я обновил ваш код и отправил его обратно в хранилище.

С уважением,

Марвин

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...