Как решить проблему с пакетом приложений Rails 5.2 для развертывания AWS Elastic Beanstalk - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь развернуть приложение 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)...:in find_spec_for_exe ': не удается найти сборщик гемов (> = 0.a) с исполняемым файломbundle (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 CLI.ИНФОРМАЦИЯ: Выполнение команды завершено во всех экземплярах.Краткое описание: [Успешно: 0, Сбой: 1] .`

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

1 Ответ

0 голосов
/ 10 апреля 2019

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

Шаг № 1. Вы добавили расширения eb для установки версии bundler 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 Все приложения -> example-rails52 -> example-eb-rails52-env, затем нажмите Конфигурация -> Программное обеспечение -> Изменить и добавьте эту переменную env

 BUNDLER_VERSION=2.0.1

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

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

$ eb deploy

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

...