web-dev-qa-db-ja.com

Elastic Beanstalk環境でRails consoleまたはrakeコマンドを実行できますか?

AWSのElastic BeanstalkにRoR環境を設定しました。 EC2インスタンスにsshできます。私のホームディレクトリは/ home/ec2-userで、これは事実上空です。ディレクトリを上に移動すると、/ home/webappディレクトリにアクセスできなくなります。

Elastic BeanstalkインスタンスでrakeコマンドまたはRailsコンソールを実行する方法はありますか?

Railsコンソールと入力すると、Usage: Rails new APP_PATH [options]Rails_ENV = production bundle exec Rails consoleと入力すると、 "Could not locate Gemfile "

43
gitb

Railsの場合は、/var/app/currentその後、@ juanpastasが言ったように、Rails_ENV=production bundle exec Rails c

52
kross

理由はわかりませんが、EBSはすべてをルートとして実行するので、これでうまくいきました。

Sudo su
bundle exec Rails c production
41
everyman

ここで説明したこれらのソリューションはどれも私にとってはうまくいきませんでしたので、script/aws-consoleに入れた小さなスクリプトを作成しました。

ルートとして/ var/app/currentディレクトリから実行できます:

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

私のスクリプトは ここの要点 として見つけることができます。

14
wrdevos

他の答えはどれも私のために働いていなかったので、私は探しに行きました-これは私のために弾力性のあるbeantalk 64ビットAmazon 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>
8
Jeremiah

私のRailsアプリ、次にeb_console itのルートにchmod u+xファイルを作成するのが好きです。次のものが含まれています。

ssh -t ec2-user@YOUR_EC2_STATION.compute.amazonaws.com  'cd /var/app/current && bin/Rails c'

このように、私はただ実行する必要があります:

./eb_console

私がheroku run bundle exec Rails cを実行したように。

3

Aws-consoleスクリプトを含め、これらのいずれも機能していませんでした。最終的に/var/app/currentscriptディレクトリを作成し、 別のSO質問 でこの回答をアウトラインとしてそのディレクトリにRailsファイルを作成しました。

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

そしてそれは働いた。

0
jangosteve