티스토리 뷰
728x90
1. Docker Compose를 이용한 OpenGrok 설치
OpenGrok을 Docker Compose를 통해 간편하게 설치하고 실행할 수 있습니다.
1.1 Docker Compose 파일 작성
먼저, docker-compose.yml
파일을 생성하고 다음 내용을 추가합니다.
version: "3"
services:
opengrok:
container_name: opengrok
image: opengrok/docker:latest
ports:
- "9999:8080"
environment:
SYNC_PERIOD_MINUTES: "60"
volumes:
- ~/opengrok/src:/opengrok/src
- ~/opengrok/etc:/opengrok/etc
- ~/opengrok/data:/opengrok/data
1.2 컨테이너 실행
docker-compose up -d
이제 OpenGrok이 http://localhost:9999/source/
에서 실행됩니다.
2. Ctags 인식 문제 해결
OpenGrok은 Universal Ctags를 사용하여 코드 분석을 수행합니다. 하지만 컨테이너 내부에서 ctags
가 설치되어 있음에도 불구하고 OpenGrok이 이를 인식하지 못하는 문제가 발생할 수 있습니다.
2.1 컨테이너 내부에서 Ctags 확인
docker exec -it opengrok sh
which ctags
ctags --version
만약 which ctags
결과가 비어 있거나 command not found
오류가 발생하면 Ctags가 설치되지 않았을 가능성이 있습니다.
2.2 Universal Ctags 설치 (필요 시)
apt update && apt install -y universal-ctags
2.3 Ctags 경로 확인 후 OpenGrok에 반영
Ctags가 /usr/local/bin/ctags
에 위치하는 경우, 다음 명령어로 OpenGrok이 이를 인식하도록 설정합니다.
docker exec opengrok java -jar /opengrok/lib/opengrok.jar \
-c /usr/local/bin/ctags \
-s /opengrok/src \
-d /opengrok/data \
-H -P -S -G \
-W /opengrok/etc/configuration.xml
3. 인덱싱 및 컨테이너 재시작
OpenGrok이 새로운 프로젝트를 반영하려면 인덱싱을 수행한 후 컨테이너를 재시작해야 합니다.
3.1 인덱싱 실행
docker exec opengrok java -jar /opengrok/lib/opengrok.jar \
-c /usr/local/bin/ctags \
-s /opengrok/src \
-d /opengrok/data \
-H -P -S -G \
-W /opengrok/etc/configuration.xml
3.2 컨테이너 재시작
docker restart opengrok
이를 통해 인덱싱 결과가 웹 UI에 정상적으로 반영됩니다.
4. 최종 확인
이제 브라우저에서 다음 주소로 접속하여 OpenGrok이 정상적으로 동작하는지 확인합니다.
🔗 http://localhost:9999
검색 기능이 정상적으로 동작하는지 테스트하고, 새로운 프로젝트가 반영되었는지 확인하세요.
5. 자동화 (한 번에 실행)
다음 명령어를 사용하면 재인덱싱 후 자동으로 OpenGrok을 재시작할 수 있습니다.
docker exec opengrok java -jar /opengrok/lib/opengrok.jar \
-c /usr/local/bin/ctags \
-s /opengrok/src \
-d /opengrok/data \
-H -P -S -G \
-W /opengrok/etc/configuration.xml && docker restart opengrok
이제 OpenGrok이 자동으로 최신 상태를 유지할 수 있습니다!
728x90
'개발 언어 > 기타 웹개발 지식' 카테고리의 다른 글
Claude.ai 사용량 최적화 전략 (0) | 2025.03.12 |
---|---|
codemcp 설정 및 사용 가이드 (0) | 2025.03.12 |
전자세금계산서 연동 및 세금계산서 스크래핑 개발자를 위한 바로빌 API 도입기 (0) | 2025.02.19 |
02. Spring WebFlux 기본 개념 (0) | 2024.11.14 |
리액티브 프로그래밍 - 부록1. (`map` vs `flatMap`) (0) | 2024.11.14 |
댓글