Open Grok+Docker에서 다운타임이 거의 없는 원본 검색
미리 준비하다
Open Grok+Docker로 일회용 소스 검색 엔진 만들기
https://qiita.com/YusukeIwaki/items/3f855202e9c00247d5c7
OpenGrok의 공식 Docker 이미지로 원본 검색 서버 만들기
https://qiita.com/YusukeIwaki/items/ccf7dab6b1a284bbff26
Docker+OpenGrok에 원본 검색 서버를 만드는 자료가 나왔지만
사실 지금까지의 원본 검색은'30분마다 한 번씩 색인을 재구성하기 위해 4분 정도의 마비 시간이 발생한다'는 큰 단점을 전달하지 못했다.
자신이 사용하는 자원 검색이라면 좋겠지만, 주변 사람들에게 사용되기 시작하면 30분은'뭔가 이상하다'는 말을 들을 위험과 싸워야 하기 때문에 그만둬야 한다.
그래서 이번에는 이 단점을 해결하는 버전을 소개하고 싶습니다.
왜 마비시간이 발생했을까
대충 그림으로 설명하시오.두 가지 이유가 있다.
지금까지의 구성은 이렇다.원본 코드는 호스트 옆에 있습니다. bindfs로 Docker 옆에 설치하고 Docker 옆에 색인을 유지합니다.
이렇게 되면 원본 코드를 최신화할 때 먼저 색인과 실제 원본이 미묘하게 일치하지 않는 상태에 있다."검색 결과가 나왔는데 실제로 보면 최신 소스가 사라졌어요."
그리고 다음 가장 큰 문제는 마비 시간이 발생한 것이다.아직 완성되지 않은 색인이 밖에서 HTTP로 접근하기 때문이다.
Docker처럼 뒷면에 색인을 만들어 완성되면 교체하면 되지 않을까요?
원본 코드를 모두 용기에 넣으면
이런 느낌으로 뒷면에 docker build로 하고 색인 생성에 docker build로 했어요.
그림의 구축이 끝난 후 좋아하는 시기에 낡은 용기stop을 만들어 새로운 용기를 만들고 최대 2~3초 정도의 카운트다운을 하면 되겠죠?이런 생각.
공식 Docker 이미지는 불가능합니다.
Oracle 공식의 Opengrok 그림은 docker run의 시간에 처음으로 색인을 생성합니다.
기존에 쓴 것처럼 HTTP를 받았지만 색인이 완성되지 않은 상태인 경우가 많아 직접 사용할 수 없다.
어쩔 수 없이 스스로 준비할 수밖에 없었다.
https://github.com/YusukeIwaki/docker-opengrok-alpine
참조https://github.com/oracle/opengrok/wiki/How-to-setup-OpenGrok하려면
공식 OpenGrok 이미지https://github.com/oracle/opengrok/blob/master/Dockerfile와 https://github.com/oracle/opengrok/tree/master/docker를 비스듬히 읽고 제작합니다.
Alpine Linux
apk add --no-cache ctags
라면 유니버설-ctags가 아니라 낡은 쪽의ctags가 들어오기 때문에 자기 앞에 유니버설-ctags를 구축해야 미묘하게 번거롭다.다른 말은 이해하기 쉽죠?
뒤에서 이미지 메이킹하는 너.
이미지 구축 스크립트는 다음과 같습니다.
Docker file에서git clone을 사용할 때 ADD로 캐시를 회피할 수 있음
https://qiita.com/sawanoboly/items/ac559c43b9662304931a
위에서 쓴 바와 같이origin/develop이 적힌 제출 산열이 있는 파일을 용기에 ADD로 보내면 됩니다.
GiitHub API 사용 가능
git ls-remote [email protected]:YusukeIwaki/some_repository.git refs/heads/develop | cut -f1 > origin_develop.sha1.txt
이런 느낌으로 어리석게 서류를 만들어도 될 것 같아.구축 자체가 단순할 뿐
docker build -t some-source-search .
.너의 용기를 바꾸어라
거칠지만
docker ps | grep "0.0.0.0:8080" | cut -f1 -d' ' | xargs --no-run-if-empty docker stop | xargs --no-run-if-empty docker rm
docker run -d -p 8080:8080 some-source-search
이런 느낌 괜찮은데.Rundeck으로 작업을 관리하면 쉬워요.
https://www.rundeck.com/open-source
설정 방법에 오류가 발생하므로 생략합니다.
총결산
전환은 복잡하지만 이블라투와 비슷한 느낌을 배치해 원본 검색을 편안하게 할 수 있다.
공식 OpenGrok의 이미지와 비슷한 Docker file을 제공한다면 여러분들은 더 행복해지실 거예요...
Reference
이 문제에 관하여(Open Grok+Docker에서 다운타임이 거의 없는 원본 검색), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/YusukeIwaki/items/dec3e4950bb4826c0191텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)