无法通过runit在Gitlab Docker Container中自动启动Subgit同步

时间:2016-07-30 14:10:17

标签: docker gitlab subgit runit

我的本​​地Gitlab CE Docker容器包含Subgit。重新启动Gitlab容器时,Subgit同步也应自动启动。

我的解决方案源自Dockerhub上gitlab / gitlab-ce的原始Dockerfile。在原始的Dockerfile中,添加了一个SSH守护程序,并在runit的控制下进行了设置。

我对Subgit做了同样的事。在 / opt / gitlab / sv / subgit 下是我的runit资源,通过设置指向 / opt / gitlab / service 目录的软链接来启用子标记。但是当启动Gitlab Container时,软链接被删除,因此runsvdir忽略了我的Subgit runit文件。手动启用软链接后,runsvdir会成功启动Subgit同步。

如何保持软链接并分别启用Subgit的自动启动?

这是关于Subgit和runit的Dockerfile的一部分:

RUN mkdir -p /opt/gitlab/sv/subgit/supervise && \
mkfifo /opt/gitlab/sv/subgit/supervise/ok && \
ln -s /opt/gitlab/sv/subgit /opt/gitlab/service/subgit
COPY ./runit_subgit_run /opt/gitlab/sv/subgit/run
COPY ./runit_subgit_finish /opt/gitlab/sv/subgit/finish
RUN chmod a+x /opt/gitlab/sv/subgit/run /opt/gitlab/sv/subgit/finish

这是runit的运行文件。真正的Gitlab组和项目名称被替换。

#!/bin/sh

exec 2>&1

exec /bin/sh -c "( subgit install \
"/var/opt/gitlab/git-data/repositories/<group_1>/<project_1>.git" && \
subgit install \
"/var/opt/gitlab/git-data/repositories/<group_2>/<project_1>.git" && \
subgit register \
"/var/opt/gitlab/git-data/repositories/<group_1>/<project_1>.git" && \
subgit register \
"/var/opt/gitlab/git-data/repositories/<group_2>/<project_1>.git" )"

0 个答案:

没有答案