2011-11-23 16 views
11

जब मैं cap deploy चलाता हूं, तो Capistrano $HOME/sites/MY_APP/releases/TIMESTAMP जैसे फ़ोल्डर बनाने का प्रयास करेगा। मैं चलाने की कोशिश कर रहा आदेश देख सकता हूं, लेकिन यह वास्तव में फ़ोल्डर नहीं बनायेगा।Capistrano रिलीज नहीं करेगा

मैं सीधे कैपिस्ट्रानो आउटपुट से कमांड की प्रतिलिपि बना सकता हूं और एसएसएच पर कमांड चला सकता हूं और यह बिना किसी समस्या के महान काम करता है।

cp -RPp /home/some_user/sites/my_cool_app/shared/cached-copy /home/some_user/sites/my_cool_app/releases/20111123164239 && (echo 59bf115868c2430cd0475ca1596998f1cfa3c084 > /home/some_user/sites/my_cool_app/releases/20111123164239/REVISION) 

क्यों आदेश Capistrano के माध्यम से विफल हो जाएगा, लेकिन सफल होने के एक SSH टर्मिनल के माध्यम से:

आदेश तो कुछ लग रहा है? मेरे लिए

set :deploy_via, :remote_cache 

हल बातें:

+0

कैपिस्ट्रानो कुछ और विफल होने पर वापस रोल करता है। क्या आप capistrano आउटपुट पोस्ट कर सकते हैं, और जब आप उस पर हों, टोपी तैनाती का आउटपुट: चेक करें? – HectorMalot

+0

कैप रिटर्न 'आपको कैप' तैनाती से स्थापित सभी आवश्यक निर्भरताएं दिखाई देती हैं: चेक करें – RyanScottLewis

+0

कई चीजें बंद हो सकती हैं: क्या उपयोगकर्ता द्वारा सर्वर पर लॉगिन करने के लिए उपयोग किए जा रहे फ़ोल्डर द्वारा फ़ोल्डर लिखने योग्य है? तैनाती लिपि में कुछ और विफल रहा है? – HectorMalot

उत्तर

22

मैं अभी भी जहां समस्या से spans लेकिन लाइन को हटाने यकीन नहीं है। यह एक बग की तरह दिखता है जहां रिलीज निर्देशिका नहीं बनाई जा रही है और इसलिए उस पंक्ति को हटाकर उस चरण को हटा दिया जाता है। एक बेहतर दृष्टिकोण आप remote_cache रखना चाहते हैं शायद इसलिए की तरह सेटअप करने के लिए एक और कदम को जोड़ने के लिए है:

after "deploy:setup", "deploy:create_release_dir" 
namespace :deploy do 
    task :create_release_dir, :except => {:no_release => true} do 
    run "mkdir -p #{fetch :releases_path}" 
    end 
end 
+0

'सेट: deploy_via,: remote_cache' मदद नहीं की .. मैंने अभी एक डीआईआर 'रन "mkdir -p # {fetch: releaseases_path}" बनाया है। – poorva

0

हरी lineline नीचे भाग पर ध्यान न दें, लेकिन मैं उन्हें सिर्फ दूसरों के लिए संदर्भ के लिए रखना होगा।

जब मैं Capistrano 3.9.x संस्करण का उपयोग कर रहा था, तो मेरे लिए उल्लेख किया गया मुद्दा मेरे लिए हो रहा था। जब मैं संस्करण 3.4.0 पर डाउनग्रेड किया गया तो यह सब काम कर रहा था। जवाब का


दूसरा हिस्सा:

एक बार यह मुझे क्या हुआ था जब GitHub कुंजी ~/.ssh/ में स्थापित नहीं किया गया।

आपको सर्वर पर एक एसएसएच कुंजी उत्पन्न करनी चाहिए। .pub फ़ाइल ~/.ssh में उत्पन्न हो जाने के बाद आपको github.com (या कोई अन्य सेवा) पर जाना चाहिए और आपको वेब साइट पर नई जेनरेट की गई एसएसएच कुंजी जोड़नी चाहिए (इसे सेटिंग पृष्ठ या इसी तरह के नीचे पाया जाना चाहिए)। इसके अलावा, सर्वर पर जो Capistrano तैनाती लिपि में पहचान से मेल खाता है ~/.ssh/config फ़ाइल में एक समुचित रिकार्ड जोड़ें:

set :repo_url, proc { "[email protected]:your_git_name/#{fetch(:application)}.git" } 

तो config फ़ाइल इस तरह दिखना चाहिए:

Host github.com 
    HostName github.com 
    User git 
     IdentityFile ~/.ssh/id_rsa_my_new_key_on_the_server 
0

मेरे मामले में यह इस लाइन को deploy.rb फ़ाइल में जोड़ने का मामला था

set :scm, :git 
संबंधित मुद्दे