2017-03-22 9 views
0

이것이 버그인지 또는 무엇인지 알 수 없습니다. successsfully링크 된 파일 /shared/config/database.yml이 IP에 존재하지 않습니다.

append :linked_files, 'config/database.yml', 'config/secrets.yml' 
append :linked_dirs, 'log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'public/system'` 

cap production deploy:check:linked_dirs 실행을하지만, cap production deploy:check:linked_files 항상이 오류 => linked file home/deploy/appname/shared/config/database.yml does not exist on IP을 생산 :하지만 내 linked_fileslinked_dirsdeploy.rb에 내가 가진, 같은에서, 나는 가정, 올바르게 설정해야합니다.

cap production doctor 인쇄 : 나는 공유/config 폴더에서 database.yml을 파일을이 경우 확인하기 위해

:linked_dirs ["log", "tmp/pids", "tmp/cache", "tmp/sockets", "public/system", "public/assets"] 
:linked_files ["config/database.yml", "config/secrets.yml"] 

내 서버에 ssh [email protected] 여러 번 SSH-ED 있습니다. 항상 거기에 있으며 나는 그것을 확인하기 위해 Vim에 열었습니다. 입니다.

이 문제를 해결하기 위해 최선을 다했지만 해결책을 찾을 수 없습니다. 누군가 도움이됩니다. 내 Gemfile에이

# deploy.rb 
set :application, 'appname' 
set :repo_url, '[email protected]:username/repo.git' 

set :deploy_to, '/home/deploy/appname' 

append :linked_files, 'config/database.yml', 'config/secrets.yml' 
append :linked_dirs, 'log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'public/system' 

는 :

gem 'capistrano', '~> 3.7.1', require: false 
gem 'capistrano-rails', '~> 1.2', require: false 
gem 'capistrano-passenger', '~> 0.2.0', require: false 
gem 'capistrano-rbenv', '~> 2.1', require: false 
+0

'home/deploy/appname ... '에 철자가 잘못되었거나 경로의 일부분에 슬래시가 없습니까? 후자의 경우 여러 개의 루트 디렉토리가 사용되고있을 수 있으며'set : deploy_to, "home/deploy/appname"'의 값 앞에 슬래시를 추가해야 할 수도 있습니다. –

+0

참고 : 원래 https://github.com/capistrano/capistrano/issues/1869에서 왔음 –

+0

실제로 터미널에 표시된 오류에는 선행 슬래시가 없습니다. 그러나 deploy.tob에 'set : deploy_to'/ home/deploy/appname '이 있습니다. –

답변

0

당신은 서버에 database.yml을 파일 적이 있습니까?

경로 예를

path_to_your_app/shared/config/database.yml 

을 그리고 당신은 deploy.rb 파일을 보일 수 있는가?

업데이트 :

시도 변경이 문자열

append :linked_files, 'config/database.yml', 'config/secrets.yml' 
append :linked_dirs, 'log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'public/system' 

앞으로이 직면 할 수있는 사람들을위한

set :linked_files, fetch(:linked_files, []).push('config/database.yml', 'config/secrets.yml') 
set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'public/system') 
+0

주어진 경로에 database.yml 파일이 있습니다. 그리고 위에 deploy.rb를 게시했습니다. 친절하게 확인하십시오. –

+0

이 구성은 어디에서 가져 왔습니까? append : linked_files, 'config/database.yml', 'config/secrets.yml' – Sivard

+0

Gorails에서 https://gorails.com/deploy/ubuntu/16.04#capistrano –

0

에, 당신이 언제든지 해당 지역에서 파일을 편집 할 내 서버의 deploy.rb 파일에 나는파일이 있었기 때문에 내가했던 것처럼 서버에서은 정확하지만 내 로컬 컴퓨터에는 set :deploy_to, 'home/deploy/appname'이 있으며 가정 앞에 슬래시가 없습니다.

매트가 주석에서 지적했듯이 cap은 로컬 컴퓨터에있는 프로그램이므로 cap production deploy은 로컬 컴퓨터에서 capistrano 구성을 검색하고 git repo에서 에셋을 컴파일합니다. 따라서 변경할 사항이있을 때마다 로컬 시스템에서 변경하고 커밋해야합니다.

+0

설명 : * 카피 스트라노 구성 *에서 가져온 것입니다. 로컬 컴퓨터. 배치 된 (즉, 앱) 실제 코드는 항상 원격 자식 저장소에서 가져옵니다. –

+0

설명을 주셔서 감사합니다. Matt, 답변을 수정했습니다. –