Ruby: Trikčių šalinimas

Susidūrėte su problema savo Ruby paslaugoje? Sprendimas tikriausiai yra čia!

👋 Sveiki atvykę į Stackhero dokumentaciją!

Stackhero siūlo paruoštą naudoti Ruby cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:

  • Įdiekite savo programą per kelias sekundes su paprastu git push.
  • Naudokite savo domeno vardą ir pasinaudokite automatiniu HTTPS sertifikatų konfigūravimu, kad padidintumėte saugumą.
  • Mėgaukitės ramybe su automatinėmis atsarginėmis kopijomis, vieno paspaudimo atnaujinimais ir paprasta, skaidria bei prognozuojama kainodara.
  • Gaukite optimalią veikimo ir tvirtą saugumą dėka privačios ir dedikuotos VM.

Taupykite laiką ir supaprastinkite savo gyvenimą: išbandyti Stackhero Ruby cloud hosting sprendimą užtrunka tik 5 minutes!

Stackhero Ruby debesų prieglobos paslauga yra sukurta būti patogi vartotojui, tačiau kartais gali kilti problemų. Žemiau rasite patarimus, kaip išspręsti dažniausiai pasitaikančias klaidas.

Ši klaida gali pasirodyti diegimo metu:

error: failed to push some refs to '[...]'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Šis pranešimas rodo, kad jūsų instancijos Git saugykloje yra turinys, kurio nėra lokaliai. Norėdami tęsti, galite naudoti šią komandą sinchronizacijai priversti:

git push -f stackhero main

Vykdant git push stackhero main, gali atsirasti ši klaida:

error: src refspec main does not match any
error: failed to push some refs to 'ssh://<XXXXXX>.stackhero-network.com:222/project.git'

Ši klaida rodo, kad jūsų saugykloje nėra main šakos. Vietoj to, gali reikėti stumti į master šaką:

git push stackhero master

Pranešimas Everything up-to-date iš Git rodo, kad tarp jūsų lokalaus kodo ir Stackhero saugyklos nebuvo aptikta jokių pakeitimų.

Jei atlikote pakeitimus, įsitikinkite, kad jie yra įrašyti:

git add -A .
git commit -m "Jūsų commit žinutė"
git push stackhero main

Jei norite inicijuoti diegimą be jokių realių kodo pakeitimų, galite sukurti tuščią commit:

git commit --allow-empty -m "Force update"
git push stackhero main

Patobulinta Makefile versija yra prieinama šiam scenarijui automatiškai spręsti. Su ja galite diegti tiesiog paleisdami make deploy, net ir be kodo pakeitimų.

Ši klaida reiškia, kad arba nėra Makefile projekto šakniniame kataloge, arba Makefile neturi run tikslo.

Norėdami tai išspręsti, galite pridėti Makefile, kuriame yra šis pavyzdys:

run:
	rake assets:precompile
	rake db:migrate RAILS_ENV=production
	RAILS_ENV=production bundle exec puma -C config/puma.rb

Jums gali būti naudinga patobulinta Makefile versija, ypač norint supaprastinti kūrimo ir diegimo darbo eigas.

Klaida *** missing separator Makefile paprastai atsiranda, kai tabuliacijos simbolis neteisingai pakeičiamas tarpais prieš komandą. Makefile failuose komandos visada turi prasidėti tabuliacijos simboliu.

Norėdami tai išspręsti, įsitikinkite, kad kiekviena komandos eilutė prasideda tinkamu tabuliacijos simboliu, o ne tarpais:

run:
<tab>command

Pakeiskite <tab> tikru tabuliacijos simboliu, kad išspręstumėte problemą.