2011-12-21 9 views
6

Mam problem z wdrożeniem Capistrano. Proces wdrażania jest usuwany z błędem Gzip.Capistrano gzip: stdin: nieoczekiwany koniec przerwania pliku

Co to może być?

cap flow deploy 

* executing `flow' 
* executing `deploy' 
* executing `deploy:update' 
** transaction: start 
* executing `deploy:update_code' 
* getting (via checkout) 
revision to /tmp/20111214204507 
executing locally: cp -R . /tmp/20111214204507 
c ommand finished in 413ms 
compressing /tmp/20111214204507 to /tmp/20111214204507.tar.gz 
executing locally: tar chzf 20111214204507.tar.gz 20111214204507 
command finished in 2419ms 
servers: ["10.11.10.10"] 
Password: ** sftp upload /tmp/20111214204507.tar.gz -> /tmp/20111214204507.tar.gz 
[10.11.10.10] /tmp/20111214204507.tar.gz 
[10.11.10.10] done * sftp upload complete * executing "cd /home/tieto/dvs_production/releases && tar xzf /tmp/20111214204507.tar.gz && rm /tmp/20111214204507.tar.gz" 
servers: ["10.11.10.10"] 
[10.11.10.10] executing command 
[err :: 10.11.10.10] 
[err :: 10.11.10.10] gzip: 
[err :: 10.11.10.10] stdin: unexpected end of file 
[err :: 10.11.10.10] tar: 
[err :: 10.11.10.10] Child returned status 1 
[err :: 10.11.10.10] 
[err :: 10.11.10.10] tar: 
[err :: 10.11.10.10] Error exit delayed from previous errors 
[err :: 10.11.10.10] 
command finished in 62ms 
[deploy:update_code] rolling back * executing "rm -rf /home/flow/production/releases/20111214204507; true" 
servers: ["10.11.10.10"] 
[10.11.10.10] executing command 
command finished in 69ms 
failed: "sh -c 'cd /home/flow/production/releases && tar xzf /tmp/20111214204507.tar.gz && rm /tmp/20111214204507.tar.gz'" on 10.11.10.10 

Odpowiedz

10

Odpowiedź jest tutaj, jeśli jesteś lub inni próbują lokalnego rozmieszczenia nadal występuje ten problem: http://f3internet.com/articles/2010/06/18/deploying-static-sites-with-capistrano/

Linia ta [10.11.10.10] done * sftp upload complete * executing "cd /home/tieto/dvs_production/releases && tar xzf /tmp/20111214204507.tar.gz && rm /tmp/20111214204507.tar.gz" próbuje rozpakować i usunąć tymczasową kopię w tym samym czasie.

Rozwiązaniem jest zdefiniować lokalne/zdalne katalogi kopiowania na tej samej maszynie:

set :copy_dir, "/home/#{local_user}/tmp" 
set :remote_copy_dir, "/tmp" 
+1

Okazało się, że tylko ustawienie copy_dir było konieczne, i że można to zrobić w linii poleceń, więc nie trzeba aby zmodyfikować pliki rozmieszczania dla mojego przypadku krawędzi do wdrożenia na tym samym komputerze: cap deploy -s copy_dir = '/ not/tmp' – mmrobins

0

Generalnie zazwyczaj jest to 1 z 3 rzeczy:

  1. zły plik/uszkodzony gzip
  2. próba wyodrębnić plik w sposób odmienny od tego, jak to było pakowane
  3. Microsoft linia kończy się w plikach w twojej aplikacji (\ r \ n)

moje pieniądze są na trzecim.