2013-01-11 26 views
6

मेरे पास उत्पादन रेल 3.2.3 एप्लिकेशन है जिसका उपयोग मैं कैपिस्ट्रानो का उपयोग करके तैनात करने के लिए करता हूं। जब मैं 3.2.11 को रेल उन्नयन करने का फैसला किया मैं निम्नलिखित किया कदम:कैपिस्ट्रानो परिनियोजन रेल के उन्नयन के बाद विफल रहता है 3.2.11

  1. Gemfile में रेल संस्करण बदल
  2. रन "बंडल अद्यतन रेल"
  3. विक्रेता/कैश, Gemfile और Gemfile से नए जवाहरात धक्का दे दिया। ताला
  4. रन "टोपी उत्पादन तैनाती"

Capistrano अब त्रुटि के साथ विफल:

* 2013-01-11 15:58:25 executing `deploy:assets:precompile' 
    triggering before callbacks for `deploy:assets:precompile' 
    * 2013-01-11 15:58:25 executing `deploy:assets:update_asset_mtimes' 
    * executing "[ -e /home/deploy/projects/otv/shared/assets/manifest.yml ] && cat /home/deploy/projects/otv/shared/assets/manifest.yml || echo" 
    servers: ["xxx.xxx.99.51"] 
    [xxx.xxx.99.51] executing command 
    command finished in 28ms 
    * executing "cd -- /home/deploy/projects/otv/releases/20130111095812 && export LANG=en_US.UTF-8 && /usr/local/bin/bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile && cp -- /home/deploy/projects/otv/shared/assets/manifest.yml /home/deploy/projects/otv/releases/20130111095812/assets_manifest.yml" 
    servers: ["xxx.xxx.99.51"] 
    [xxx.xxx.99.51] executing command 
** [out :: xxx.xxx.99.51] cp: cannot stat ‘/home/deploy/projects/otv/shared/assets/manifest.yml’: No such file or directory 
    command finished in 18773ms 

मैंने इन चरणों को अन्य परियोजनाओं के साथ करने की कोशिश की जो पहले सफलतापूर्वक उसी परिणाम के साथ कैपिस्ट्रानो के साथ तैनात किए जाने के लिए उपयोग किए जाते थे।

मेरे Gemfile and deploy.rb

उत्तर

4

Fwiw, मैं> 2.14.0 को Capistrano को अद्यतन करने के बाद यह हो रही थी:

*** [err :: ourapp.net] cp: cannot stat `/home/deploy/www/ourapp/shared/assets/manifest.yml' 
*** [err :: ourapp.net] : No such file or directory 

मैं साझा करने के लिए संपत्ति symlinking लगता मैं सिर्फ यह समस्या को हल करने से इस लाइन से हटाया डीआईआर इसे ठीक करेगा, लेकिन इसके आसपास गड़बड़ करने की बजाय (इसे तैनात करना होगा), मैंने बस 2.13.5 पर कैप डाउनग्रेड किया।

+0

बहुत बहुत धन्यवाद, स्टीव! –

+2

मैं capistrano 2.14.2 का उपयोग कर रहा हूं और रेल 4.0beta1 में अपग्रेड करने के बाद यह समस्या देख रहा हूं। क्या डाउनग्रेडिंग के बिना कोई समाधान है? - मुझे यकीन नहीं है कि मैं संपत्तियों को कहां से सिंक्रनाइज़ करूँगा? –

+3

@RomanGaufman मेनिफेस्ट फ़ाइल का नाम बदलकर 'manifest-a5247d227d9b50f54f7c66dc7e640bca.json' शैली में बदल दिया गया है। आप इस त्रुटि से ''home/deploy/www/ourapp/shared/assets' निर्देशिका' पर' touch' कमांड द्वारा 'manifest.yml' बनाकर बना सकते हैं। – Tsutomu

0

नवीनीकरण करने के लिए करने से पहले अपने दूर के सर्वर पर अपने सभी एसेट हटाना था?

कभी कभी कुछ पुराने संदर्भ मुद्दा

चीयर्स उस तरह, जेरेमी

+1

और Gemfile.llock को हटाने के बारे में सोचें .. – Jeremy

+0

मैं समझ नहीं पा रहा हूं कि मेरी संपत्तियों को कैसे हटाया जाए। ... प्रोजेक्टपाथ/साझा/संपत्ति फ़ोल्डर खाली है, सभी परियोजनाओं में स्थित ... प्रोजेक्टपाथ/रिलीज/yyyymmddhhmmss/public/assets। मुझे यह भी नहीं पता कि मैं अपने Gemfile.lock को कैसे हटा सकता हूं, क्या मुझे इसे रेपो से हटा देना चाहिए क्योंकि रेपो से तैनाती के लिए कोड लिया जाता है? –

+0

ठीक है, अपने रेपो में अपने Gemfile.lock को रखना एक अच्छा अभ्यास नहीं है, क्योंकि यह बंडल निष्पादित करते समय ऑटो उत्पन्न होता है (इंस्टॉल, अपडेट ..)। क्या आपने उदाहरण के लिए वर्तमान रिलीज पर सीधे अंतिम आदेश निष्पादित करने का प्रयास किया था ("सीडी -/होम/तैनाती/परियोजनाओं/ओटीवी/रिलीज/2 [....]) को निष्पादित करने के लिए ?! – Jeremy

1

मैं एक ही मुद्दा था हो सकता है।

कैपिस्ट्रानो के नए संस्करणों में अब साझा संपत्ति पथ सिम्लिंकिंग को संभालने के लिए some code है। मेरा config/deploy.rb इस संभाल करने के लिए कुछ कोड था, और पथ एक दूसरे के साथ संघर्ष कर रहे थे।

run "ln -nfs #{shared_path}/public/assets #{release_path}/public/assets" 
संबंधित मुद्दे