rails 6 docker -составить не удается с: невозможно загрузить такой файл - 2.6 / ffi_c - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь докернизировать свое приложение rails 6 и продолжаю преодолевать контрольно-пропускные пункты, которые не имеют смысла для меня. Ошибки кажутся довольно простыми для понимания, но все исправления, которые я пытаюсь решить, устраняют проблему.

Вот ошибка, которую я получаю после выполнения следующих команд:

$ docker-compose up
/usr/local/bundle/gems/activesupport-6.0.2.1/lib/active_support/dependencies.rb:325:in `require': libc.musl-x86_64.so.1: cannot open shared object file: No such file or directory - /usr/local/bundle/gems/ffi-1.12.2/lib/ffi_c.so (LoadError)

Я не получаю любые ошибки до запуска контейнера app. Эта ошибка кажется довольно простой, поэтому, если я добавлю gem 'ffi' к моему Gemfile in, все равно получаю ту же ошибку после запуска:

$ bundle install
$ docker-compose up --build

Мой Gemfile в значительной степени стандартен:

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.6.3'

gem 'rails', '~> 6.0.2', '>= 6.0.2.1'
gem 'pg', '~> 1.1.2'
gem 'puma', '~> 4.1'
gem 'sass-rails', '>= 6'
gem 'webpacker', '~> 4.0'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.7'
gem 'devise'
gem 'image_processing', '~> 1.2'

group :development, :test do
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

group :test do
  gem 'capybara', '>= 2.15'
  gem 'selenium-webdriver'
  gem 'webdrivers'
end

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

Мой Dockerfile выглядит так:

FROM ruby:2.6.3

# nodejs
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg -o /root/yarn-pubkey.gpg && apt-key add /root/yarn-pubkey.gpg
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list
RUN apt-get update && apt-get install -y --no-install-recommends build-essential nodejs yarn imagemagick libpq-dev

ENV APP_HOME /app
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME

# rails
RUN gem install bundler
ADD Gemfile* $APP_HOME/
RUN bundle install

ADD . $APP_HOME
RUN yarn install --check-files

CMD ["rails","server","-b","0.0.0.0"]

и docker-compose.yml:

version: '3'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    depends_on:
      - db
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - node_modules:/app/node_modules
      - gem_cache:/usr/local/bundle/gems
    environment:
      RAILS_ENV: development

  db:
    image: postgres
    ports:
      - "5432:5432"
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres

volumes:
  gem_cache:
  node_modules:
  db_data:

Чего здесь не хватает?

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