Как исправить проблему с сборщиком приложений Rails 5.2 для развертывания AWS Elastic Beanstalk

Я пытаюсь развернуть приложение Rails 5.2 на AWS Elastic Beanstalk, но получаю эту ошибку.

Creating application version archive "app-c6b5-190405_225348". Uploading example-rails52/app-c6b5-190405_225348.zip to S3. This may take a while. Upload Complete. Environment details for: example-eb-rails52-env Application name: example-rails52 Region: us-east-2 Deployed Version: app-c6b5-190405_225348 Environment ID: e-ehbkcfzrrt Platform: arn:aws:elasticbeanstalk:us-east-2::platform/Puma with Ruby 2.5 running on 64bit Amazon Linux/2.9.2 Tier: WebServer-Standard-1.0 CNAME: UNKNOWN Updated: 2019-04-05 16:53:59.311000+00:00 Printing Status: INFO: createEnvironment is starting. INFO: Using elasticbeanstalk-us-east-2-525254074082 as Amazon S3 storage bucket for environment data. INFO: Created security group named: sg-073de6677d8e02d77 INFO: Created load balancer named: awseb-e-e-AWSEBLoa-985TNPDWPYRI INFO: Created security group named: awseb-e-ehbkcfzrrt-stack-AWSEBSecurityGroup-1XWZBQC4TD76I INFO: Created Auto Scaling launch configuration named: awseb-e-ehbkcfzrrt-stack-AWSEBAutoScalingLaunchConfiguration-SAZWMJ3L0UV7 INFO: Created Auto Scaling group named: awseb-e-ehbkcfzrrt-stack-AWSEBAutoScalingGroup-1E8GGM4K5S26 INFO: Waiting for EC2 instances to launch. This may take a few minutes. INFO: Created Auto Scaling group policy named: arn:aws:autoscaling:us-east-2:525254074082:scalingPolicy:bb866da3-dac2-47f0-81a2-ebc1c582d68a:autoScalingGroupName/awseb-e-ehbkcfzrrt-stack-AWSEBAutoScalingGroup-1E8GGM4K5S26:policyName/awseb-e-ehbkcfzrrt-stack-AWSEBAutoScalingScaleUpPolicy-ON6YTENHUIOE INFO: Created Auto Scaling group policy named: arn:aws:autoscaling:us-east-2:525254074082:scalingPolicy:f13cedac-d71f-4b89-a0fd-dd2db97bb43a:autoScalingGroupName/awseb-e-ehbkcfzrrt-stack-AWSEBAutoScalingGroup-1E8GGM4K5S26:policyName/awseb-e-ehbkcfzrrt-stack-AWSEBAutoScalingScaleDownPolicy-3MK7B2H0O52F INFO: Created CloudWatch alarm named: awseb-e-ehbkcfzrrt-stack-AWSEBCloudwatchAlarmHigh-1R89A12TU33EK INFO: Created CloudWatch alarm named: awseb-e-ehbkcfzrrt-stack-AWSEBCloudwatchAlarmLow-1KHMKXF2A73T1 ERROR: [Instance: i-050185633c1ecb322] Command failed on instance. Return code: 1 Output: (TRUNCATED)...:infind_spec_for_exe': не удается найти сборщик драгоценных камней (>= 0.a) с исполняемым пакетом (Gem::GemNotFoundException) из /opt/rubies/ruby-2.5.5/lib/ruby/site_ruby/2.5.0/rubygems.rb:308:in activate_bin_path' from /opt/rubies/ruby-2.5.5/bin/bundle:23:in'. Ошибка хука /opt/elasticbeanstalk/hooks/appdeploy/pre/10_bundle_install.sh. Для получения дополнительной информации проверьте /var/log/eb-activity.log с помощью консоли или интерфейса командной строки EB. ИНФОРМАЦИЯ: Выполнение команды завершено на всех экземплярах. Сводка: [Успешно: 0, Неудачно: 1].`

Может ли кто-нибудь дать мне решение?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
1 060
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В Rails 5.2 вам необходимо установить пакет версии 2.0.1. Чтобы решить эту проблему, вы можете выполнить следующие шаги:

Шаг 1. Вы добавили расширения eb для установки пакета версии 2.0.1 в AWS Elastic beanstalk —

# Go to your project root directory
$ mkdir .ebextensions
$ vim .ebextensions/bundler_install.config 

  files:
    # Runs before `./10_bundle_install.sh`:
    "/opt/elasticbeanstalk/hooks/appdeploy/pre/09_gem_install_bundler.sh" :
      mode: "000775"
      owner: root
      group: root
      content: |
        #! /bin/bash

        EB_APP_STAGING_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_staging_dir)
        EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir)
        # Source the application's ruby, i.e. 2.6. Otherwise it will be 2.3, which will give this error: `bundler requires Ruby version >= 2.3.0`
        . $EB_SCRIPT_DIR/use-app-ruby.sh

        cd $EB_APP_STAGING_DIR
        echo "Installing compatible bundler"
        gem install bundler -v 2.0.1

Шаг 2. Перейдите в AWS Elastic beanstalk Все приложения -> пример-rails52 -> пример-eb-rails52-env, затем нажмите «Конфигурация» -> «Программное обеспечение» -> «Изменить», а затем добавьте эту переменную env.

 BUNDLER_VERSION=2.0.1

и нажмите сохранить

Шаг 3. Разверните приложение снова

$ eb deploy

Надеюсь, это должно сработать.

Ужасно. Нет никаких шансов, что я ставлю это на крючок. Должно быть лучшее решение? Контейнеры, наверное.

Damien Roche 26.06.2019 21:34

@DamienRoche Я обновил ответ. Пожалуйста, проверьте еще раз. Надеюсь, это сработает.

Sahidur Rahman Suman 27.06.2019 12:59

Другие вопросы по теме