当前位置: 首页 > news >正文

opengrok搭建与配置

前提条件

需要配置好docker与docker-compose环境

1.代码准备

mkdir -p /data/opengrok/{etc,src,data}

cd /data/opengrok/src/

# 克隆一个测试项目

git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

2.创建docker-compose.yml文件(其中最后的cpus与mem_limit请根据实际情况进行高整)

version: "3"

services:

  opengrok:

    container_name: opengrok

    image: opengrok/docker:latest

  

  ports:

      - "8090:8080/tcp"

    environment:

      #SYNC_PERIOD_MINUTES: '1440'

      JAVA_OPTS: "-Xms4g -Xmx64g -Duser.timezone=Asia/Shanghai"

      TZ: "Asia/Shanghai"

    volumes:

       - '/data/opengrok/src/:/opengrok/src'      # source code

       - '/data/opengrok/etc/:/opengrok/etc/'     # folder contains configuration.xml

       - '/data/opengrok/data/:/opengrok/data/'   # index and other things for source code

    cpus: '64.0'

    mem_limit: 96G

2. 下载并运行docker image

sudo docker compose up -d

3. 检查端口在防火墙中是否被禁用

root@PVT-SR588:~# sudo lsof -i:8090

COMMAND      PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

docker-pr 346229 root    7u  IPv4 889519      0t0  TCP *:8090 (LISTEN)

docker-pr 346236 root    7u  IPv6 889520      0t0  TCP *:8090 (LISTEN)

root@PVT-SR588:~#

# 上面是正常的情况,如果被禁用了,可以改为允许访问

sudo ufw allow 8090/tcp

4. 至此,已经可以在其他主机上通过浏览器访问 http://host-ip-addr:8090/ 了,如果出现访问异常,可以查看docker启动log

sudo docker-compose logs

5. 进入容器中配置更新代码的权限,并尝试进行git pull,看能否成功

docker exec -it opengrok bash

cd /opengrok/src/MT8678_yocto/custom

git pull

6. 在容器中安装相关工具包

6.1. repo安装参考:repo安装配置
6.2. 生成公钥并添加到对应的gerrit帐号中
6.3. 设置全局配置 git config --global --add safe.directory * 确保可以正确同步代码
6.4. 修改时区(使用tzselect,并在docker-compose.yml中定义)

7. 更新索引

# 指定MT8676项目更新

JAVA_OPTS="-Xms4g -Xmx64g" /venv/bin/python3 /venv/bin/opengrok-reindex-project --printoutput --api_timeout 8 --jar /opengrok/lib/opengrok.jar -U http://localhost:8080/ -P MT8676 -- --connectTimeout 8 -r dirbased -G -m 256 --leadingWildCards on -T 4 -c /usr/local/bin/ctags -U http://localhost:8080/ -H MT8676

# 定时更新全部索引

# 检查容器中cron是否启动

service cron status

# 重新启动cron服务(时区修改后要重启cron)

service cron start

# 增加定时任务(在终端输入crontab -e进行)

0 1 * * *  /opengrok/update_index.sh

/opengrok/update_index.sh内容如下:

#!/bin/bash

# 设置环境变量

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/java/openjdk/bin

export JAVA_OPTS="-Xms4g -Xmx64g"

# 脚本内容

code_dir="/opengrok/src"

for in $(ls $code_dir ); do

    /venv/bin/python3 /venv/bin/opengrok-reindex-project \

        --printoutput \

        --api_timeout 8 \

        --jar /opengrok/lib/opengrok.jar \

        -U http://localhost:8080/ \

        -P $i \

        -- --connectTimeout 8 \

        -r dirbased \

        -G \

        -m 256 \

        --leadingWildCards on \

        -T 16 \

        -c /usr/local/bin/ctags \

        -U http://localhost:8080/ \

        -H $i

done

报错:

  1. repo sync后的项目在切换并跟踪一个远程分支(要多执行几次,有些会没切换成功)
  2. 如在MT8678_yocto/custom目录下执行git pull时报 git config --global --add safe.directory /opengrok/src/MT8678_yocto/custom,则说明权限设置不符合 Git 的默认安全规则,可执行  git config --global --add safe.directory "*"  来进行全局配置
  3. MT8678_yocto/meta/meta_kde和MT8678_yocto/meta/meta_kde也要切换并跟踪一个远程分支
  4. 如新增项目后要先重启容器注册项目再更新索引

参考文档:

opengrok/docker - Docker 镜像 | Docker Hub --- opengrok/docker - Docker Image | Docker Hub

在ubuntu 22.04 上通过 Docker部署OpenGrok-CSDN博客

相关文章:

  • 位掩码、哈希表、异或运算、杨辉三角、素数查找、前缀和
  • MySQL 中JSON_CONTAINS ,用于检查 JSON 文档是否包含特定的值
  • 开源AI大模型AI智能名片S2B2C商城小程序:科技浪潮下的商业新引擎
  • 头歌 | WPS文档基本操作
  • Zephyr、FreeRTOS、RT-Thread 低功耗模式对比分析
  • ZYNQ笔记(四):AXI GPIO
  • Java-JDBC入门程序、预编译SQL
  • 动手学习:路径规划原理及常用算法
  • HTTP协议原理深度解析:从基础到实践
  • FreeRTOS动态任务创建
  • 线代[13]|线性代数题37道以及数学分析题3道(多图预警)
  • 【无标题】spark编程
  • HTTP:二.URI及相关术语
  • Linux 调试代码工具:gdb
  • 九屏图分析法以手机为例
  • OPEX baota 2024.02.26
  • NSGA-II 多目标优化 —— 理论、案例与交互式 GUI 实现
  • OpenCV 图像旋转
  • 笔记:头文件与静态库的使用及组织方式
  • 机器学习 从入门到精通 day_03
  • 网站建设座谈会/百度网址大全怎么设为主页
  • 免费游戏网站模板/发软文的网站
  • 河南郑州广城区/seo线下培训班
  • 政法网站建设有哪些不足/互联网广告投放
  • 做地方网站论坛/品牌推广策略有哪些
  • 新网站怎么做seo优化/搜外网友情链接