디버깅, 자동화(EOTD No.6)
이거 아메타!6번째 EOTD(Error Of The Day)다.
다음은 잡담.
오늘 deploy를 테마로 선택했기 때문에 글 아이콘을 선택할 때'deploy'로 검색해 보세요
왜 위의 배가 그려졌는지 나는 매우 놀랐다.
신경쓰여서 투덜거리는 데서 depro에서'펼친다'는 뜻 이외에
(부대·병력 등)배치/source:Weblio영일사전
그런 뜻이 있는 것 같아요.
특히 해군의 군사 전개는'Navy Deployment'로 불리는데, 아마도 이곳에 배의 아이콘이 있을 것이다
이것은 유래가 아닌가?내 생각엔
참고로 미국의 해군 병사들은 해군학교에서 다양한 훈련을 쌓은 후에
배와 잠수함을 배치하는 데 6, 7개월 이상이 걸린다.
...멋있어요.
이상은 잡담입니다.
그러니까 우리 곧 갑시다...
오늘의 잘못
장면
이 오류는 Capistrano라고 불리는 자동 설계 도구를 사용할 때 발생합니다.
그 전에 AWS에서 생성된 EC2 실례에 로그인하여 공식 환경의 응용 프로그램을 수동으로 설계했습니다.
EC2 인스턴스란?
AWS에서 생성할 수 있는 가상 서버입니다.가상 머신이라는 소프트웨어를 이용하여 리눅스 서버를 가상적으로 만들었다.또한 기본 케이스는 zsh가 아니라 bash이기 때문에 환경 구축에 사용되는 명령은 이에 대응해야 한다.한편, zsh를 조개껍질로 지정하는 방법도 있는 것 같다.
그러나 Capistrano를 사용하는 경우 EC2 인스턴스에 액세스하지 않고 로컬에서 단일 코드로 디버깅할 수 있습니다.너무 좋아요.
이 명령은
% bundle exec cap production deploy
하지만 이 지령은 잘못된 도화선이었다.
고찰하다.
**DEPLOY FAILED
정보 아래에 캐피톨라노의 최신 로그 20줄이 나와 있는 것 같아서 먼저 확인했어요.그래서 수상한 줄을 발견했다.
Gem::Exception: can't find executable unicorn for gem unicorn. unicorn is not included in the bundle.
유니콘은 밴드에 들어가지 않았다.왜?(수동으로 디버깅할 때
unicorn_rails
분명히 명령을 사용했다.)저는 그렇게 생각해요. 하지만 Gemufile를 보러 가면...
group :test do
gem 'unicorn', '5.4.1'
end
아!정식 공연이 아니라 경합이야.
나는 이곳을 수정했다.
group :production do
gem 'unicorn', '5.4.1'
end
상기 변경push를 마스터 지점으로 변경한 후 다시 이 명령을 시도했지만 같은 오류가 발생했습니다.이후 EC2의 Uniccorn과 웹 서버가 다시 시작되었지만 반응은 변하지 않았다.
EC2에 로그인, 유니콘.로그를 검사했지만 이상이 없습니다.
이게 무슨 일이야...
해결 (오류 63;)
결론은 EC2 실례에서pull master 분기 후
% bundle exec cap production deploy
로컬 환경에서 상기 명령을 다시 실행하면 정식 환경에서 디버깅을 할 수 있습니다!다만, Capistrano를 사용하면 EC2 인스턴스에 액세스하지 않아도 DEPRO를 수행할 수 있습니다!
이 점은 매우 매력적이어서 근본적인 해결이라고 할 수 없다
오늘은 됐어요.(편안한 수면을 위해)
SOTD(Summary Of The Day)
이번 해결 방법은 정말 이해하기 어렵다.
다만, 캐피탈로 자체가 편리한 도구라고 느껴져 능숙하게 사용하려고 한다.
이전의 오류와 달리 이번처럼 두 환경을 뛰어넘는 조작은 오류의 원인을 확정하기 어렵다.오늘의 공부.
만약 누군가가 잘못된 원인에 관심을 가지고 있다면 평론란에서 교수님!
Reference
이 문제에 관하여(디버깅, 자동화(EOTD No.6)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/swata_dev/articles/811e5cf66bd08e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)