10 June 2015

准备

  • docker
  • docker ubuntu 镜像
  • openssh-server
  • postfix
  • msmtp
  • gitolite : https://github.com/sitaramc/gitolite

gitolite使用

gitolite 是一款基于 ssh 的轻量级 git 服务器。 gitolite在初始化的时候会自己创建一个 gitolite-admin 的项目,并通过它来来管理所有项目的权限及配置。

gitolite安装

  • 登录需要安装gitolite的服务器
  • 创建git用户并使用git用户安装gitolite
  • 代码下载 : git clone https://github.com/sitaramc/gitolite
  • 选择其中一个版本, 这里我们选择 v3.6.3
  • 安装gitolite到 ~/bin 目录

gitolite说明 : https://m.oschina.net/blog/330617

gitolite新建项目

在新建项目之前必须先有项目管理员的公钥, 可通过以下命令生成公私钥对:

ssh-keygen -f /home/joans/.ssh/id_rsa  -t rsa -N ''

把生成的公钥文件(/home/joans/.ssh/id_rsa.pub)上传到服务器上. 然后以git用户登录服务器,执行创建操作:

gitolite setup -pk YourName.pub

之后就可以在自己的机器上下载 gitolite-admin 项目来管理所有的项目了。

gitolite导入项目

如果之前使用过 gitolite 并已经创建几个项目在 repositories 目录下了。由于种种原因需要在新的 gitolite 上导入原有的项目及其权限。可以通过以下步骤来完成导入工作:

cd /home/git/repositories/gitolite-admin.git
GL_LIBDIR=$(gitolite query-rc GL_LIBDIR)  hooks/post-update refs/heads/master

gitolite发送邮件

  • 发送邮件服务器

    可以选择使用postfix或者msmtp

  • 邮件发送者

    默认是git commit Author的邮箱, 可以通过 hooks.envelopesender 定制

  • 邮件接收者

    需要通过 hooks.mailinglist 配置

  • 邮件主题
  • 邮件内容

Dockerfile

项目链接 : https://registry.hub.docker.com/u/joans321/gitolite/