• docker安装opengrok环境


    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
    • 2
    • 3
    • 4
    • 5
    • 6
    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
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 安装docker engine
     sudo apt-get update
     sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
    • 1
    • 2

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

    opengrok镜像拉取

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

    sudo docker push opengrok/docker
    
    • 1

    运行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映射成其他端口
    
    • 1
    • 2
    • 3
    • 4

    运行之后,可以通过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
    
    • 1
    • 2
    • 3

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

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

    更新代码索引

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

  • 相关阅读:
    leetcode-跳跃游戏系列
    秒杀:只出现一次的数字系列
    旋转矩阵推导过程
    3.简单场景构建
    写个计算器
    Go 基础15-在init()函数中检查包级变量的初始状态
    leetcode分类刷题:栈(Stack)(三、下一个更大的数)
    分享一个口碑炸裂的Python可视化模块,简单快速入手!!
    C#笔记:C#程序基本内容
    三国志14信息查询小程序(历史武将信息一览)制作更新过程03-主要页面的设计
  • 原文地址:https://blog.csdn.net/cclethe/article/details/126697335