Saya memiliki aplikasi RoR yang berfungsi di komputer lokal saya, tetapi ketika saya mengirimkannya ke heroku, aplikasi tersebut macet. Log kesalahan memberikan kesalahan H10 & mengatakan:
2012-11-21T15:26:47+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.4.2/lib/new_relic/control/instance_methods.rb:95:in `start_agent'
2012-11-21T15:26:48+00:00 heroku[web.1]: State changed from starting to crashed
2012-11-21T15:26:48+00:00 heroku[web.1]: Process exited with status 1
2012-11-21T15:26:59+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
2012-11-21T15:27:00+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
2012-11-21T15:30:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
2012-11-21T15:30:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
2012-11-21T15:30:59+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
2012-11-21T15:31:19+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
2012-11-21T15:31:19+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
2012-11-21T15:32:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
2012-11-21T15:32:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
Edit:
2012-11-22T10:00:58+00:00 app[web.1]:
2012-11-22T10:00:59+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno=web.1 queue=0 wait=0ms connect=1ms service=26ms status=200 bytes=0
Adakah yang pernah mengalami ini sebelumnya, dan tahu apa yang mungkin menyebabkan masalah? Saya tidak dapat menemukan solusi.
Terima kasih.
ruby-on-rails
deployment
heroku
bskool.dll
sumber
sumber
Jawaban:
Saya mengalami kesalahan yang sama di atas, aplikasi mogok di heroku (berjalan dengan baik di dev) tetapi log kesalahan pada heroku tidak mengungkapkan petunjuk apa pun. Saya membaca jawaban lain di halaman ini dan berkeringat setelah melihat "membangun kembali aplikasi." Saya pikir mungkin saya bisa masuk ke konsol heroku dan melihat-lihat. Saya melakukannya dan bahkan konsolnya rusak, tetapi kali ini saya diberitahu mengapa. Itu adalah beberapa variabel tidak jelas yang lupa saya hapus selama sesi pemecahan masalah beberapa jam sebelumnya. Saya tidak mengatakan Anda akan mengalami masalah yang sama, tetapi saya menemukan lebih banyak info ketika saya mencoba melalui konsol. Semoga ini membantu.
$ heroku run rails console
sumber
heroku restart
membantu saya mengidentifikasi masalah saya.bin
Folder saya hilang.Saya mengalami masalah yang sama. Log juga tidak memberi saya petunjuk apa pun. Jadi saya memperkecil dan meningkatkan kembali dynos. Ini memecahkan masalah saya:
Menunggu beberapa detik ...
sumber
heroku restart
adalah solusi yang berhasil untuk saya, dan saya kira (di balik layar) ini adalah trik yang serupa. Memulai ulang akan diterapkan dengan menghentikan semua dynos dan memulainya lagi.$heroku run rails console
Ini adalah opsi terbaik karena ini akan memberi Anda kesalahan di terminal Anda yang akan jauh lebih rinci daripada kesalahan 'aplikasi macet' di log Heroku Anda.
sumber
membantu saya menjalankan dyno saya kembali. Saya baru mengenal Heroku tapi senang saya tahu sekarang.
sumber
ini terjadi pada saya ketika saya mendengarkan di port yang salah
Saya mengubah listening () saya menjadi "process.env.PORT" jadi:
http.listen((process.env.PORT || 5000), function(){ console.log('listening on *:5000'); });
dari pada
http.listen(5000, function(){ console.log('listening on *:5000'); });
sumber
Punya masalah yang sama malam ini. Bukan kesalahan yang sangat membantu jadi saya mencoba menjalankannya di konsol
heroku run rails c
itu gagal dan memberi saya kesalahan yang jauh lebih bermanfaat. Saya telah mengabaikan untuk menghapus panggilan metode dalam produksi. Setelah saya memperbaikinya, aplikasi berfungsi dengan baik.
sumber
SyntaxError
. Log tidak memberikan banyak informasi, tetapi memberirails c
.Saya memecahkan masalah ini dengan mendorong ke Git:
git add . git commit -am "some text" git push
lalu dorong ke Heroku:
git push heroku
lalu rake db: bermigrasi di Heroku:
heroku run rake db:migrate
sumber
Saya berhasil tidak menyertakan file .gitignore saya -> yang merusak heroku. #doh
Ini adalah file .gitignore yang berfungsi
/.bundle /vendor/bundle/ /vendor/ruby/ db/*.sqlite3 /db/*.sqlite3-journal /log/* /tmp/* **.war *.rbc *.sassc .redcar/ .sass-cache /config/config.yml /config/database.yml /coverage.data /coverage/ /db/*.javadb/ /db/*.sqlite3 /doc/api/ /doc/app/ /doc/features.html /doc/specs.html /public/cache /public/stylesheets/compiled /public/system/* /spec/tmp/* /cache /capybara* /capybara-*.html /gems /specifications rerun.txt pickle-email-*.html .zeus.sock **.orig .DS_Store /nbproject/ .idea /*.tmproj **.swp .env .powenv
Untuk membuat file .gitignore, di terminal arahkan ke direktori aplikasi Anda dan gunakan perintah berikut
touch .gitignore
Kemudian Anda dapat membukanya di editor teks Anda dan memasukkan kode di atas ke dalamnya.
sumber
Dalam kasus saya, saya menggunakan variabel ENV di aplikasi saya, tetapi tidak disetel di konfigurasi heroku.
konsol heroku memberikan kesalahan yang tepat:
heroku console `validate_options': Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError)
Kemudian atur konfigurasi ENV
heroku config:set AWS_ACCESS_KEY_ID='key'
Mulai ulang Heroku
berhasil!!
sumber
Saya mendapatkan kesalahan error aplikasi H10 yang sama di Heroku. Saya mengklik 'restart semua dynos' di antarmuka heroku, dan masalah terpecahkan.
sumber
Saya memiliki
H10
Heroku dan Node karena nama yang salah dari file kode utama. Editpackage.json
:{ ... "main": "correct_file_name.js", ... "scripts": { "start": "node correct_file_name.js" } }
Atau ganti nama file.
sumber
Solusi Berhasil untuk saya, Coba jalankan perintah::
sumber
Lihat apakah Anda mengerti
bash: bin/rails: No such file or directory
di log saat menjalankan perintah (heroku logs -t) jika ya maka silakan Jalankan
bundle exec rake rails:update
Jangan menimpa file Anda, pada akhirnya perintah ini akan dibuat
create bin create bin/bundle create bin/rails create bin/rake
mendorong file-file ini ke heroku dan selesai.
sumber
Akar masalah yang saya hadapi adalah karena tidak memiliki database. Untuk mengatasi masalah, saya pertama kali mengekspor database lokal saya:
$ heroku addons:add heroku-postgresql:dev $ heroku addons:add pgbackups $ PGPASSWORD=mypassword pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump
Kemudian mengimpornya ke Heroku:
$ heroku pgbackups:restore DATABASE 'http://site.tld/mydb.dump'
Variabel untuk mengganti dalam contoh ini adalah:
mypassword
,myuser
,mydb
&http://site.tld/mydb.dump
. Perhatikan bahwa saya harus mengunggah dump ke server sementara.Menyelesaikan semua masalah saya, saya menulis panduan singkat tentang cara menerapkan Enki ke Heroku, yang dapat ditemukan di sini .
sumber
Saya mendapat kesalahan yang sama di atas sebagai "aplikasi mogok" dan log aplikasi heroku tidak menunjukkan banyak info terkait dengan alasan pesan kesalahan. Kemudian saya memulai ulang dynos di heroku dan kemudian menunjukkan kesalahan yang mengatakan kurung kurawal tambahan di salah satu file index.js di pengaturan saya. Masalah diperbaiki setelah dihapus dan diterapkan ulang aplikasi di heroku.
Semoga ini bisa membantu seseorang yang menghadapi masalah yang sama.
sumber
Setelah melalui seluruh daftar jawaban, saya menemukan situs web ini: https://status.heroku.com/ yang merinci status / insiden saat ini dengan Heroku. Selalu aman untuk memeriksa insiden sebelum membenturkan kepala Anda ke dinding. Bagi saya, laporan insiden terlampir yang diterbitkan pada tautan yang disebutkan di atas itulah yang menyebabkan kesalahan.
sumber
Dalam kasus saya, yang
Procfile
saya gunakan melanggar segalanya. Heroku mencariProcfile
dan menerapkan pengaturannya saat meluncurkan aplikasi - jelas pengaturan dev yang saya gunakan tidak masuk akal untuk server prod. Saya harus mengganti namanya menjadiProcfile.dev
dan semuanya mulai berfungsi normal.sumber
Saya memiliki masalah yang sama, saya melakukan hal berikut
heroku run rails c
Ini mengidentifikasi kesalahan sintaks dan koma yang hilang dalam parameter yang diizinkan pengontrol. Seperti disebutkan di atas, log Heroku tidak memberikan informasi yang cukup untuk memecahkan masalah.
Saya belum pernah melihat pesan aplikasi rusak di Heroku sebelumnya.
sumber
uninitialized constant
kesalahan di Heroku yang tidak ada secara lokal. Meskipun saya masih perlu menyelesaikannya, saya bisa mendapatkan penerapan yang berfungsi kembali.Jika Anda menggunakan Node, Anda dapat mencoba menjalankan perintah serve langsung di konsol. Dalam kasus saya, saya menjalankan aplikasi sudut, jadi saya mencoba dengan:
heroku run npm start
Ini menunjukkan kepada saya kesalahan yang tepat selama startup aplikasi.
sumber
Saya menelusuri masalah saya kembali ke server Puma seperti yang dilakukan @Ahmed Elkoussy, tetapi saya menyelesaikannya hanya dengan mengomentari baris berikut di file puma.rb:
# pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
sumber
Saya mengalami masalah yang sama hari ini. Saya melakukannya
heroku run rake db:migrate
meskipun saya memigrasi model sebelumnya, dan aplikasi tidak macet.sumber
Berhati-hatilah saat menyalin dan menempel kode. Terkadang saat Anda menambahkan blok ke dalam file, format tersebut salah dan akan menghasilkan kesalahan.
Saya pernah mengalami masalah ini sebelumnya dan mendapatkan kesalahan ini: tIDENTIFIER tidak terduga, mengharapkan keyword_end
sumber
Punya masalah yang sama. bagi saya itu adalah kesalahan dalam filter before_action (karena DB kosong) Periksa filter before_action Anda, mungkin mereka membuang pengecualian yang tidak terkendali.
sumber
Saya mengalami masalah ini saat mencoba menjalankan Rails di subdirektori, bukan di
/
. Misalnya, saya menjalankan aplikasi Angular / Node / Gulp/client
dan menjalankan aplikasi Rails/server
, tetapi keduanya berada di repo git yang sama, jadi saya dapat melacak perubahan di front end dan back end. Saya mendapatkan kesalahan ini saat mencoba menerapkannya ke Heroku. Bagi siapa pun yang mengalami masalah ini, berikut adalah buildpack khusus yang memungkinkan menjalankan Rails di subdirektori.https://github.com/aarongray/heroku-buildpack-ruby
sumber
Saya memiliki masalah yang sama (kesalahan yang sama pada heroku, bekerja pada mesin lokal) dan saya mencoba semua solusi yang tercantum di sini termasuk
heroku run rails console
yang berjalan tanpa pesan kesalahan. Saya mencobaheroku run rake db:migrate
danheroku run rake db:migrate:reset
beberapa kali. Semua ini tidak menyelesaikan masalah. Saat menelusuri beberapa file yang digunakan dalam produksi tetapi tidak di lingkungan dev, saya menemukan beberapa spasi di file puma.rb sebagai pelakunya. Semoga ini bisa membantu seseorang yang memiliki masalah yang sama. Mengubah ini membuatnya berhasiluntuk
ActiveRecord::Base.establish_connection end
sumber
Saya mengalami masalah yang sama saat menerapkan ke Heroku (kerusakan aplikasi). Log tidak menunjukkan apa masalahnya. Konsol Heroku menampilkan kesalahan sintaks dalam kode tanda kurung ekstra. Anehnya, saya tidak memiliki masalah pada rel lokal saat menjalankan aplikasi dan karenanya melewatkannya. Setelah koreksi dan git push ke Heroku, aplikasi mulai berfungsi di Heroku!
sumber
Saya memperbarui pengaturan saya dari app.set ('ip_address', process.env.IP || '127.0.0.1' );
untuk
app.set ('ip_address', process.env.IP || '0.0.0.0' );
yang saya ubah untuk hosting Openshift
sumber
Saya memiliki masalah yang sama ketika saya mulai menggunakan Puma di heroku sesuai halaman panduan mereka , masalah ini terpecahkan ketika saya mengomentari baris port yang ditunjukkan di bawah ini
# port ENV['PORT'] || 3000
Jadi, menonaktifkan baris di atas di puma.rb di direktori config menyelesaikan masalah
workers Integer(ENV['WEB_CONCURRENCY'] || 2) threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5) threads threads_count, threads_count preload_app! rackup DefaultRackup # port ENV['PORT'] || 3000 environment ENV['RACK_ENV'] || 'production' on_worker_boot do # Worker specific setup for Rails 4.1+ # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot ActiveRecord::Base.establish_connection end
sumber
Dalam kasus saya, saya tampil
git push heroku master
saat saya tidak berada di cabang master. Saya harus pergi ke cabang master terlebih dahulu, menggabungkan kode dengan cabang saya yang lain dan kemudian git didorong.sumber
Saya juga mengalami kesalahan yang sama. Menambahkan file
.gitignore
file ke proyek saya menyelesaikan masalah saya..gitignore
File saya ada di sini:# Node build artifacts node_modules npm-debug.log # Local development *.env *.dev .DS_Store # Docker Dockerfile docker-compose.yml
Dan saya mengubah
listen()
fungsi;app.listen(5000, function() { console.log("Server running on port 5000..."); });
Saya mengubahnya menjadi;
const PORT = process.env.PORT || 5000 ... app.listen(PORT, function() { console.log("Server running on port 5000..."); });
sumber