분산 아키텍처 (하나의 상자에 웹 서버가있는 로컬 서버에서 작동하는 로컬 컴퓨터에서 작동하는 기본 레일 응용 프로그램을 배포하는 데 문제가 있습니다. 다른 데이터베이스 서버).별도의 응용 프로그램 서버 및 데이터베이스 서버 (모두 Linode)에 레일 응용 프로그램 배포
여기가 내 문제입니다. Capistrano가 내 데이터베이스 서버에서 캐시 된 사본을 업데이트 할 수없는 것 같습니다.
2013-05-12 11:32:57 executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote [email protected]:morgs32/treebook.git master"
command finished in 1658ms
* executing multiple commands in parallel
-> "else" :: "if [ -d /home/morgan/apps/treebook/shared/cached-copy ]; then cd /home/morgan/apps/treebook/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard 73b5a632d417b3a6863d542b174b30077265bc7c && git clean -q -d -x -f; else git clone -q -b master [email protected]:morgs32/treebook.git /home/morgan/apps/treebook/shared/cached-copy && cd /home/morgan/apps/treebook/shared/cached-copy && git checkout -q -b deploy 73b5a632d417b3a6863d542b174b30077265bc7c; fi"
-> "else" :: "if [ -d /home/morgan/apps/treebook/shared/cached-copy ]; then cd /home/morgan/apps/treebook/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard 73b5a632d417b3a6863d542b174b30077265bc7c && git clean -q -d -x -f; else git clone -q -b master [email protected]:morgs32/treebook.git /home/morgan/apps/treebook/shared/cached-copy && cd /home/morgan/apps/treebook/shared/cached-copy && git checkout -q -b deploy 73b5a632d417b3a6863d542b174b30077265bc7c; fi"
servers: ["*app server ip*", "*database ip*"]
[*app server ip*] executing command
[*database ip*] executing command
** [*database ip* :: out] sh: 1: git: not found
command finished in 3072ms
*** [deploy:update_code] rolling back
* executing multiple commands in parallel
-> "else" :: "rm -rf /home/morgan/apps/treebook/releases/20130512183302; true"
-> "else" :: "rm -rf /home/morgan/apps/treebook/releases/20130512183302; true"
servers: ["*app server ip*", "*database ip*"]
[*app server ip*] executing command
[*database ip*] executing command
command finished in 201ms
failed: "sh -c 'if [ -d /home/morgan/apps/treebook/shared/cached-copy ]; then cd /home/morgan/apps/treebook/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard 73b5a632d417b3a6863d542b174b30077265bc7c && git clean -q -d -x -f; else git clone -q -b master [email protected]:morgs32/treebook.git /home/morgan/apps/treebook/shared/cached-copy && cd /home/morgan/apps/treebook/shared/cached-copy && git checkout -q -b deploy 73b5a632d417b3a6863d542b174b30077265bc7c; fi'" on *database ip*
당신이
애플리케이션 서버의 IP을 볼 때마다 물론
, 또는 데이터베이스의 IP 나는 해당 서버의 실제 IP를 가지고있다. 어떤 아이디어?
귀하의 카피스트라 배포가 데이터베이스 상자와 대화 할 필요가 없을 수도 있습니다. 웹 서버의 레일즈 응용 프로그램에서 마이 그 레이션을 실행할 수 있습니다 (database.yml이 올바르게 설정되어있는 한). – house9
http://stackoverflow.com을 참조하십시오./questions/9781767/capistrano-db-role-db 역할에 대한 자세한 내용은 – house9
너무 일찍 시도한 것 같습니다. 먼저 capistrano, nginx, postgres 및 railscast # 335를 사용하여 단일 상자에서 작동하는지 확인하겠습니다. 그 일이 끝나면 나는이 문제를 다시 해결할 것입니다 (며칠). 지금까지 제안 해 주셔서 감사드립니다. – morgs32