GitLab是什么
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务和GitHub差不多,只不过是开源的。
为什么用docker安装GitLab
docker真是个好东西,部署环境,以及软件安装都特别方便,所以我选择使用docker来安装GitLab。这里我选择安装中文版的GitLab。
一、安装docker
二、使用 Docker Compose
正常部署时,可以使用 Docker Compose 来配置启动。建立一个 docker-compose.yml,内容如下:
version: '2'
services:
gitlab:
image: 'twang2218/gitlab-ce-zh:11.1.4'
restart: unless-stopped
hostname:
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url
gitlab_rails['time_zone'] = 'Asia/Shanghai'
# 需要配置到 gitlab.rb 中的配置可以在这里配置,每个配置一行,注意缩进。
# 比如下面的电子邮件的配置:
# gitlab_rails['smtp_enable'] = true
# gitlab_rails['smtp_address'] =
# gitlab_rails['smtp_port'] = 465
# gitlab_rails['smtp_user_name'] =
# gitlab_rails['smtp_password'] = "password"
# gitlab_rails['smtp_authentication'] = "login"
# gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab_rails['smtp_tls'] = true
# gitlab_rails['gitlab_email_from'] =
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- config:/etc/gitlab
- data:/var/opt/gitlab
- logs:/var/log/gitlab
volumes:
config:
data:
logs:
127.0.0.1
三、使用 Docker 命令启动
直接使用 docker 命令要比使用 docker-compose 繁琐一些,但是可以达到一样的效果。
首先,Docker 容器数据应该存储于卷中,在这里我们使用最简单的本地命名卷:
- gitlab-config 存储 GitLab 配置信息
- gitlab-data 存储数据库
- gitlab-logs 存储日志
然后,我们需要创建自定义网络,从而让容器运行于独立的网络中,区别于默认网桥。
docker network create gitlab-net
准备好后,开始运行 Gitlab 容器:
docker run -d \
--hostname \
-p 80:80 \
-p 443:443 \
-p 22:22 \
--name gitlab \
--restart unless-stopped \
-v gitlab-config:/etc/gitlab \
-v gitlab-logs:/var/log/gitlab \
-v gitlab-data:/var/opt/gitlab \
--network gitlab-net \
twang2218/gitlab-ce-zh:11.1.4
如果需要进入容器修改配置文件,可以用 docker exec
命令进入容器:
$ docker exec -it gitlab bash
root@09f6e32c528c:/# vi /etc/gitlab/gitlab.rb
root@09f6e32c528c:/# gitlab-ctl reconfigure
Starting Chef Client, version 12.12.15
resolving cookbooks for run list: ["gitlab"]
...
如需停止服务,直接运行 docker stop gitlab
。
如需卸载服务及相关内容,可以执行:
docker stop gitlab
docker rm gitlab
docker network rm gitlab-net
docker volume rm gitlab-config gitlab-datagitlab-logs
注意事项
登录
启动 GitLab 后,第一次访问时,会要求设置 root
用户的密码,密码不得小于8位。设置好后,就可以登录使用了。
对于早期版本,可以使用默认的 root
用户密码 5iveL!fe
登录。
配置 SSH 端口
修改宿主的 SSH 端口
修改宿主的 SSH 端口,使用非 22 端口。比如修改 SSHD 配置文件,/etc/ssh/sshd_config
,将其中的 Port 22 改为其它端口号,然后 service sshd restart
。这种方式比较推荐,因为管理用的宿主 SSH 端口改成别的其实更安全。
修改容器的 SSH 端口
修改容器的端口映射关系,比如将 -p 22:22
改为 -p 2222:22
,这样 GitLab 的 SSH 服务端口将是 2222。这样做会让使用 GitLab 的 SSH 克隆、提交代码有些障碍。这种情况要改变用户使用 Git 的链接方式。
要从之前的:
git clone
改为明确使用 ssh:// 的 URL 方式。
git clone