当前位置: 首页 > 工具软件 > OpenGrok > 使用案例 >

docker安装opengrok环境

柴飞星
2023-12-01

docker安装opengrok

为了更好浏览代码,尝试使用opengrok,为了简化安装和维护的步骤,决定以docker的形式安装opengrok。
参考官方文档:https://github.com/OpenGrok/docker。

安装docker环境

环境为ubuntu
参考docker官方的安装步骤:https://docs.docker.com/engine/install/ubuntu/

  1. Set up the repository
 sudo apt-get update
 sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  1. 添加key
 sudo mkdir -p /etc/apt/keyrings
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

 echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 安装docker engine
 sudo apt-get update
 sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

至此,docker环境基本搭建完成,其他步骤可进一步参考官方文档。

opengrok镜像拉取

我们需要从docker仓库中拉取opengrok的镜像

sudo docker push opengrok/docker

运行opengrok容器

sudo docker run -d -e REINDEX=30 \	# 后台运行
        -v /home/lubuntu/workspace/opengrok/src:/opengrok/src \	# 映射src源码路径
        -v /home/lubuntu/workspace/opengrok/docker:/docker \	# 映射docker相关脚本路径
        -p 8080:8080 opengrok/docker:latest	# 映射端口,可以将8080映射成其他端口

运行之后,可以通过sudo docker ps来查看docker容器运行的情况:

$ sudo docker ps
CONTAINER ID   IMAGE                    COMMAND               CREATED          STATUS          PORTS                                       NAMES
72bc02d74a23   opengrok/docker:latest   "/scripts/start.py"   12 seconds ago   Up 11 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   hungry_robinson

如果需要进去容器里去做或者查看一些东西,可以进入容器的bash内:

sudo docker exec -it <container id> bash
# 其中container id就是通过docker ps查看到的容器ID

更新代码索引

更新代码索引需要opengrok容器执行更新索引的脚本,官方仓库已经提供了。
还记得上面映射的路径-v /home/lubuntu/workspace/opengrok/docker:/docker,更新脚本就在docker/scripts/index.sh,如果你在容器外,可以运行sudo docker exec <container id> /docker/scripts/index.sh;如果已经在容器内了,直接运行/docker/scripts/index.sh即可。

其他

opengrok代码的索引主要是通过ctags来生成,如果项目比较大的换,会有很对ctags进程在后台运行,并且生成索引需要一段时间,之后的同步处理有需要一段时间,同时在更新和使用的过程中,opengrok的容器会莫名其妙挂掉,有时在更新一半后,有时在网页浏览时,感觉不稳定。

reference

http://www.bytefire.io/2016/11/21/deploy-opengrok-by-docker/
https://oracle.github.io/opengrok/

 类似资料: