Heroku dyno mogok dengan aplikasi pesan[web.1]: /usr/bin/env: ruby.exe: Tidak ada file atau direktori seperti itu

Saya memiliki aplikasi Rails dasar yang berfungsi di desktop Windows 8 saya (rails_12factor, Ruby 1.9.3, Rails 4, postgres) - menggunakan rails server - Saya dapat menavigasi ke situs web aplikasi di browser lokal saya dan semuanya berjalan dengan baik.

Saya mendorong aplikasi ke heroku melalui git push heroku master dan semuanya tampak baik-baik saja. Satu-satunya peringatan yang saya lihat adalah "Menghapus Gemfile.lock karena dibuat di Windows." Prosesnya diakhiri dengan pesan berikut - "Peluncuran... selesai, v9".

Namun saat menjalankan "heroku ps" saya mendapatkan yang berikut:

=== web (1X): bin/rails server -p $PORT -e $RAILS_ENV web.1: mogok 12/07/2013 00:42:20 (~ 4 detik yang lalu)

Saat melakukan log heroku --tail, saya mendapatkan yang berikut ini diulangi di file log - :

heroku[web.1]: Starting process with command `bin/rails server -p 16041 -e $RAILS_ENV`
app[web.1]: /usr/bin/env: ruby.exe: No such file or directory
heroku[web.1]: Process exited with status 127
heroku[web.1]: State changed from starting to crashed
heroku[web.1]: Error R99 (Platform error) -> Failed to launch the dyno within 10 seconds
heroku[web.1]: Stopping process with SIGKILL

...

heroku[web.1]: Process exited with status 127
heroku[web.1]: Error R99 (Platform error) -> Failed to launch the dyno within 10 seconds

Saya melihat hal-hal di web yang membuat saya memeriksa .gitignore untuk melihat apakah konten folder bin lokal saya dikecualikan. Mereka tidak. Saya juga melihat saran untuk mengedit isi folder bin dan menghapus kata .exe setelah Ruby - saya mencobanya juga.

EDIT 1: Proyek saya memiliki subfolder bin, dengan 3 file bundel, rail dan rake. Ini adalah satu-satunya file yang dimulai dengan #!/usr/bin/env ruby. Saya juga mengedit baris pertama untuk membaca #!/usr/bin/env ruby*.exe* - kesalahan masih terlihat. Berikut isi masing-masing file:

bundel

#!/usr/bin/env ruby
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
load Gem.bin_path('bundler', 'bundle')

rel

#!/usr/bin/env ruby
APP_PATH = File.expand_path('../../config/application',  __FILE__)
require_relative '../config/boot'
require 'rails/commands'

menyapu

#!/usr/bin/env ruby
require_relative '../config/boot'
require 'rake'
Rake.application.run

person Nikhil George    schedule 13.07.2013    source sumber
comment
Ini mungkin membantu: stackoverflow.com/questions/15443456/ Atau ini: stackoverflow.com/questions/17736328/   -  person sergio.s    schedule 21.07.2013


Jawaban (2)


Tampaknya bagi saya ada beberapa skrip yang mencoba memuat ruby.exe melalui shebang.

Lihatlah yourproject/script/rails, milik saya terlihat seperti ini di Mac OS 10.6:

#!/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'
person Ast Derek    schedule 13.07.2013
comment
Saya tidak memiliki folder scripts di folder proyek saya. Namun, saya memiliki folder bin dengan file bundle, rails dan rake. Semuanya dimulai dengan #!/usr/bin/env ruby: mis. #!/usr/bin/env ruby ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) load Gem.bin_path('bundler', 'bundle') - person Nikhil George; 13.07.2013
comment
Bagaimana jika Anda mencari ruby.exe di dalam folder proyek Anda - person Ast Derek; 13.07.2013

Coba tebak: Anda mengedit file sumber di Windows, jadi akhir barisnya salah. Jika ya, pemuat Linux akan mencoba memuat "ruby\n".

Jalankan dos2unix pada file Anda, komit ulang dan dorong kembali ke Heroku. Itu benar-benar terjadi pada saya sekali.

person Nitzan Shaked    schedule 13.07.2013