美文网首页
Docker方式安装OpenGrok阅读大型源码项目

Docker方式安装OpenGrok阅读大型源码项目

作者: 4c6ed2800025 | 来源:发表于2019-11-07 21:46 被阅读0次

阅读大型源码项目除传统的Souce Insight、Scitools Understand等付费PC端工具,基于Web的{OpenGrokElixir Cross Reference也是相当惊艳,方便躺在床上用ipad阅读源代码。作为开源工具,不仅免费而且支持用户自己搭建。如下为{OpenGrok的界面:

另外,二者都提供许多常见的大型项目(https://github.com/oracle/opengrok/wiki/Installations
以及https://elixir.bootlin.com/),足够使用并且免除动手搭建的麻烦。但毕竟是国外网站,偶尔访问速度上不去,故自己动手搭建一套还是非常有用的。OpenGrok的源码方式安装还是蛮麻烦的,所以使用官方的Docker镜像并且自己写了个小脚本方便进行管理。

1. Debian/Ubuntu系统搭建{OpenGrok

博主使用的是Debian系统,所以包管理器为apt,如果你使用其它系统或者想要改变端口或者源码目录,简单修改脚本即可。
(1). 安装 Docker / Opengrok

./opengrok.sh install

该命令做了如下工作: 删除已存在的Docker、启用https、加入docker的官方gpg密钥、校验密钥、添加稳定源、安装Docker社区版、安装opengrok/docker image、创建opengrok目录。

sudo apt remove docker docker-engine docker.io containerd runc
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/debian \
    $(lsb_release -cs) \
    stable"
sudo apt update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo docker pull opengrok/docker
sudo mkdir -p $GROKPATH/etc
sudo mkdir -p $GROKPATH/data
sudo mkdir -p $GROKPATH/src

(2). 运行opengrok

./opengrok.sh run

该命令执行以下工作:停止正在的运行的opengrok/docker进程、删除之前生成的配置和数据(可选)、后台运行opengrok/docker映像。

sudo docker stop $CONTAINER_NAME
sudo docker rm $CONTAINER_NAME

sudo rm -rf $GROKPATH/etc/*
sudo rm -rf $GROKPATH/data/*

sudo docker run -d  \
     --name $CONTAINER_NAME \
     -p $PORT:8080/tcp \
     -e REINDEX=$REINDEX \
     -v $GROKPATH/src/:/opengrok/src/ \
     -v $GROKPATH/etc/:/opengrok/etc/ \
     -v $GROKPATH/data/:/opengrok/data/ \
     opengrok/docker:latest

sudo docker run -d  \
     --name "opengrok" \
     -p 8888:8080/tcp \
     -e REINDEX="0" \
     -v ~/opengrok/src/:/opengrok/src/ \
     -v ~/opengrok/etc/:/opengrok/etc/ \
     -v ~/opengrok/data/:/opengrok/data/ \
     opengrok/docker:latest

(3). 如果添加了其他项目,运行如下命令重新生成索引

./opengrok.sh reindex

docker exec <container> /scripts/index.sh

2. 剧透一下,Windows 也可以搭建哦~ , 适合一些只能在本机看的私有项目

(1) 下载并安装Docker For Windows;
(2) 启动 Docker Desktop 守护进程;
(3) 在合适的位置创建opengrok文件夹,比如:d:/docker/opengrok/,并创建三个子文件夹etcdatasrc
(4) 将源代码解压到opengrok/src文件夹;
(5) 运行如下命令运行opengrok映像

docker run -d --name "opengrok" -p 8888:8080/tcp -e REINDEX="0" -v d:/docker/opengrok/src/:/opengrok/src/ -v d:/docker/opengrok/etc/:/opengrok/etc/ -v d:/docker/opengrok/data/:/opengrok/data/  opengrok/docker:latest 

(6) 若后续添加源代码则运行如下命令进行重新索引

docker exec opengrok /scripts/index.sh

:Hyper-V会与VirtualBox冲突
解决方法:
(a). 关闭Hyper-V,管理员终端运行如下命令;

bcdedit /set hypervisorlaunchtype off

(b). 若还是要使用Docker可以尝试使用旧版的Docker ToolBox
(c). 尝试在WSL或者虚拟机里面的Linux安装Docker/OpenGrok。

参考

  1. https://github.com/OpenGrok/docker
  2. Docker-OpenGrok的安装及使用

相关文章

网友评论

      本文标题:Docker方式安装OpenGrok阅读大型源码项目

      本文链接:https://www.haomeiwen.com/subject/jpdbbctx.html