2014-05-11 2 views
0

Keter를 사용하여 Yesod 앱을 배포하려고합니다. 이전에 *.keter 번들을 /opt/keter/incoming에 추가했지만 다른 시스템에 파일을 작성 했으므로 시작하지 못했습니다. 이후 서버 자체에 내 응용 프로그램을 구축하여이 문제를 해결했습니다.Keter 님이 새 번들을 가져 오지 않았습니다.

그러나 이제 새 *.keter 번들이 /opt/keter/incoming/에 추가되면 아무 일도 발생하지 않습니다. /opt/keter/log/keter/current.log에는 처음 실패한 배포 이후 로그 메시지가 없습니다. ps aux | grep kete[r]을 실행할 때 Keter가 여러 번 실행되는 것을 볼 수 있으므로 실행중인 것으로 보입니다.

임시 디렉토리에 복사 한 *.keter 번들을 복사했는데, 여기에서 나는 gunzip/untarred했다. 그렇게 한 후에 바이너리를 직접 실행할 수 있었으므로 괜찮습니다.

편집 : Keter가 사용하는 temp 디렉터의 내부에는 바이너리 만 있습니다 (고정 자산 또는 기타 항목 없음). 이 바이너리를 실행하려고하면 "Segmentation fault"로 실패합니다.

keter /opt/keter/etc/keter-config.yaml을 실행하려고하면 정말 유용하다는 것을 알 수 있습니다. 몇 가지 문제를 해결하기 위해 노력 중이며 postgres 인증 오류가 발생했다고 생각합니다. 조금 후에보고 할 것입니다.

+0

데이터베이스가 변경되고 마이그레이션이 지나치게 많거나 마이그레이션이 실패한 경우 새 yesod 인스턴스를 시작하는 데 문제가 있습니다. 가능한 해결책 : db 행을 동일한 환경 목표와 함께 cmd 행에서 실행하여 db 이주를 완료 또는 해결 한 후 타스크를 종료하고 keter를 소득 폴더로 재 시도하십시오. –

답변

1

그래, 모든 문제를 해결했습니다. 대략, 단계이었다 :

  1. tail -f 응용 프로그램 및 KETER 정보 current.log 파일은
  2. 실행 KETER 수동이 (내가하지 않았다 certificate.pem 파일을 가지고 있지처럼 문제를 가져올 것 keter /opt/keter/etc/keter-config.yaml
  3. 데이터베이스 연결 오류와 같은 문제를 해결하려면 앱의 로그 파일을 사용하십시오.
    • 나는 이것을 처리하기 위해 Keter를 사용하지 않았지만, 나는 수동으로 postgres를 설정했다.

이것은 내가 할 필요가 모든 것을 기억 상당히 축소 된 답 - 그렇지 않으면 ..의 일종이다. 그러나 여기에서 핵심은 수동으로 keter를 실행하여 발생한 오류를 버블 링하는 것이 었습니다.

관련 문제