我尝试遵循这个教程:https://hub.docker.com/r/opengrok/docker/
我是这么做的:
mkdir /home/testuser/OpenGrokTest
cp -R SmallCppProject /home/testuser/OpenGrokTest/
docker pull opengrok/docker
docker run -d -v /home/testuser/OpenGrokTest/:/opengrok/src -p 8080:8080 opengrok/docker:latest
现在我可以使用localhost:8080访问opengrok,它就在那里:
然而,正如你所看到的,什么都没有。这个项目很小(只有5个CPP文件),我也等了~15分钟“以防万一”,但什么都没有改变。
我觉得这是一个非常简单的问题,但教程没有提到任何额外的步骤,所以我不知道出了什么问题。
2条答案
按热度按时间mwkjh3gx1#
我已经解决了这个问题5分钟后,我已经张贴的问题...但我相信这可能是有用的人在未来,因为它是一个相当陷阱,所以我会离开它。问题出在我的SmallCppProject里面。2它有.git目录,而在那个目录里面有与repo相关的符号链接。3那些符号链接被破坏了,因为当我'我复制了这个项目,目录被改变了。显然这是一个问题,因为在删除.git目录之后,现在一切都很好。尽管我认为opengrok应该为这样的事情做好“准备”,忽略断开的链接。
编辑:实际上这不是关于符号链接的问题,而是关于.git目录的问题,所以最新的opengrok docker映像显然有问题,当前版本是1.7.2,通常如果我只放源代码,opengrok就可以工作,但是如果我把源代码加到git,opengrok就不能初始化了。
klr1opcd2#
如果您仔细查看日志,可能会发现OpenGrok无法将本地git仓库与远程git仓库同步,原因是缺少git密钥或git用户名和密码。
如果你的源代码包含git文件夹,OpenGrok可以自动执行
git pull
,并保持你的git仓库是最新的。但如果没有配置git密钥或用户名/密码,它只会记录错误并跳过索引项目,我认为这不是一个好的设计。正确的解决方案是让OpenGrok禁用自动同步。
打开Docker容器的cli窗口,通过cd转到“/opengrok/etc”。此文件夹中存在
mirror.yml
文件。请执行以下命令:并重新启动容器。
OpenGrok将忽略所有包含.git文件夹的项目的同步。如果您只是想禁用某个项目的自动同步,请将“.*”替换为您要忽略的项目名称。
编辑:
用NOMIRROR=“yes”启动opengrok docker container可以简单地解决这个问题。运行以下命令: