Подтвердить что ты не робот

Можете ли вы запустить консоль рельсов или команду рейка в среде эластичного бобового стебля?

Я установил RoR environement на эластичный бобовый шлейф AWS. Я могу использовать ssh в моем экземпляре EC2. Мой домашний каталог / home/ec2-user, который фактически пуст. Если я перемещаюсь по каталогу, есть также каталог /home/webapp, к которому у меня нет доступа.

Есть ли способ запустить команду rake или консоль рельсов на моем экземпляре эластичного beanstalk?

Если я наберу консоль рельсов, я получаю Usage: rails new APP_PATH [options] Если я наберу RAILS_ENV = производственный пакет exec rails console, я получаю "Could not locate Gemfile"

4b9b3361

Ответ 1

Для рельсов перейдите к /var/app/current, затем, как сказал @juanpastas, запустите RAILS_ENV=production bundle exec rails c

Ответ 2

Не знаю почему, но так как EBS запускает все как root, это сработало для меня:

sudo su
bundle exec rails c production

Ответ 3

Ни одно из упомянутых здесь решений не сработало для меня, поэтому я подготовил небольшой скрипт, который я поместил в script/aws-console.

Вы можете запустить его из каталога /var/app/current от имени root:

eb ssh
cd /var/app/current
sudo script/aws-console

Мой сценарий можно найти здесь как Gist.

Ответ 4

Ни один из других ответов не работал у меня, поэтому я пошел искать - теперь это работает для меня на эластичном бобовом стебле. 64-битный амазон linux 2016.03 V2.1.2 ruby ​​2.2 (puma) stack

cd /var/app/current
sudo su
rake rails:update:bin
bundle exec rails console

который возвращает мне ожидаемую консоль

Loading production environment (Rails 4.2.6)
irb(main):001:0>

Ответ 5

Мне нравится создавать файл eb_console в корне моего приложения rails, а затем chmod u+x его. Он содержит следующее:

ssh -t [email protected]_EC2_STATION.compute.amazonaws.com  'cd /var/app/current && bin/rails c'

Таким образом, мне просто нужно запустить:

./eb_console

как я бы запустил heroku run bundle exec rails c.

Ответ 6

Ни один из них не работал у меня, включая aws-console script. Наконец, я закончил создание каталога script в /var/app/current, а затем создав в этом каталоге файл rails в качестве контура этого ответа на другой вопрос SO.

eb ssh myEnv
cd /var/app/current
sudo mkdir script
sudo vim script/rails

Добавьте это в файл и сохраните:

echo #!/usr/bin/env ruby
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.

APP_PATH = File.expand_path('../../config/application',  __FILE__)
require File.expand_path('../../config/boot',  __FILE__)
require 'rails/commands'

Затем сделайте его выполнимым и запустите:

sudo chmod +x script/rails
sudo script/rails console

И это сработало.

Ответ 7

добавить ярлык расширения eb:

# .ebextensions/irb.config
files:
  "/home/ec2-user/irb":
    mode: "000777"
    owner: root
    group: root
    content: |
      sudo su - -c 'cd /var/app/current; bundle exec rails c'

затем:

$ eb ssh
$ ./irb
irb(main):001:0>

Ответ 8

Вам нужно найти папку с вашим Gemfile: p.

Чтобы сделать это, я бы посмотрел в вашей конфигурации веб-сервера, там должна быть конфига, которая сообщает вам, где находится ваш каталог приложений.

Возможно, вы знаете, где находится ваше приложение.

Но если вы не знаете, я бы попытался:

grep -i your_app_name /etc/apache/*
grep -i your_app_name /etc/apache/sites-enabled/*

Поиск файлов, содержащих your_app_name в конфигурации Apache.

Или, если вы используете nginx, замените apache выше на nginx.

после того, как вы найдете в нем папку приложения, cd и запустите RAILS_ENV=production bundle exec rails c.

Убедитесь, что ваше приложение настроено на запуск в конфигурации Apache или nginx.