macos+Docker+GitLab 构建本地Git服务

macos+Docker+GitLab 构建本地Git服务

1. 安装Docker

安装方式:

  1. 推荐通过Homebrew安装,homebrew
  2. 手动安装dmg,官网
1
2
3
4
5
6
7
8
9
10
11
emoji:~ penn$ brew search docker
==> Formulae
docker docker-compose docker-gen docker-machine-driver-hyperkit docker-machine-parallels
docker-clean docker-compose-completion docker-ls docker-machine-driver-vultr docker-squash
docker-cloud docker-credential-helper docker-machine docker-machine-driver-xhyve docker-swarm
docker-completion docker-credential-helper-ecr docker-machine-completion docker-machine-nfs docker2aci

==> Casks
docker docker-edge docker-toolbox
emoji:~ penn$ brew cask install docker
...........

2. 在Docker容器中安装gitlab-ce容器

1
2
3
4
5
6
7
8
emoji:~ penn$ docker search gitlab
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
gitlab/gitlab-ce GitLab Community Edition docker image based … 2203 [OK]
sameersbn/gitlab Dockerized gitlab web server 1071 [OK]
.............
# ce(Community Edition)代表社区版, lastest代表最新版本,默认
emoji:~ penn$ docker pull gitlab-ce:lastest
.............

3. 启动容器

1
2
3
4
5
6
emoji:~ penn$ docker run -d -p 443:443 -p 80:80 -p 22:22 \
--name gitlab --restart always \
--volume /Users/***/gitlab/config:/etc/gitlab \
--volume /Users/***/gitlab/logs:/var/log/gitlab \
--volume /Users/***/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
  • 把主机的 443、80、22 端口直接转发到Docker容器;
    –volume /Users/xxx/gitlab/config:/etc/gitlab 、
    –volume /Users/xxx/gitlab/logs:/var/log/gitlab 、
    –volume /Users/xxx/gitlab/data:/var/opt/gitlab
    这三个参数表示将 gitlab 的配置、日志和数据持久化到主机文件系统上来。

  • 启动成功后可以通过docker ps查看当前在docker运行的容器

    1
    2
    3
    4
    emoji:~ penn$ docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    c039e4c23176 gitlab/gitlab-ce "/assets/wrapper" About an hour ago Up About an hour (healthy) 0.0.0.0:22->22/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp gitlab
    emoji:~ penn$

4. 配置gitlab

登录gitlab

访问127.0.0.1:80即可进入gitlab的访问界面。设置好密码会跳转到登录界面,默认用户名为root。

创建组

gitlab有三类对象:group(组)、people(用户)、project(项目)
创建好组设置好组权限,再创建用户添加到组即可使用户拥有相应的权限。

创建用户

至此,还不能发送邮件,需要手动为用户添加密码,用户第一次登录后系统会强制用户修改。管理员为新添加的用户设置密码步骤如下:
Admin area –>User –>Edit 进入界面

Snip20181108_2

Snip20181108_1

Snip20181108_3

创建项目

在对应的组中New Project即可创建项目。

添加SSH Keys

用户登录系统后,会看到提示:
You won’t be able to pull or push project code via SSH until you add an SSH key to your profile
打开项目设置,添加SSH Keys,根据网页提示新建或者添加现有的key。

clone项目

至此,用户可以push和pull,对拥有的项目进行修改。
注意:
使用SSH地址 clone项目时:git@c039e4c23176:test/testproject-slug.git中c039e4c23176是gitlab在docker中的容器ID,需要换成本机地址;
即:git clone git@127.0.0.1:test/testproject-slug.git

5.over~~~~

起风了,您的支持将鼓励我继续创作!