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

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

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

我也和Subgit一样。 在/ opt / gitlab / sv / subgit下是我的runit资源,通过设置软链接到/ opt / gitlab / service目录来启用子文件。 但是,当Gitlab容器启动软链接被删除,因此runsvdir忽略我的Subgit runit文件。 当手动启用软链接时,runsvdir正在成功启动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组和项目名称被replace。

 #!/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" )"