step1 拉取镜像
# gitlab-ce是免费版还有付费版gitlab-ee, 这里使用ce版本
# github地址: https://hub.docker.com/r/gitlab/gitlab-ce
docker pull gitlab/gitlab-ce:latest
step2 创建文件夹存储日志,配置和数据
# 这里
mkdir -p /tmp/gitlab
cd /tmp/gitlab
mkdir logs
mkdir config
mkdir data
# logs 存储日志
# config 存储配置
# data 存储数据
# 修改文件夹权限, 不然gitlab容器无法写入
sudo chown -R root:staff logs
sudo chown -R root:staff config
sudo chown -R root:staff data
# 注意有些时候会出现容器不停重启的情况,
# 这是由于映射文件夹权限的问题
step3 启动docker
sudo docker run --detach \
--name "gitlab" \
--hostname "172.16.23.130" \
--publish 172.16.23.130:9443:443 \
--publish 172.16.23.130:9080:80 \
--publish 172.16.23.130:9022:22 \
--volume /tmp/gitlab/logs:/var/log/gitlab \
--volume /tmp/gitlab/config:/etc/gitlab \
--volume /tmp/gitlab/data:/var/opt/gitlab \
--restart always \
-d gitlab/gitlab-ce:latest
# --name 容器名称 自定义
# --hostname 宿主机地址
# 443, 80, 22 分别是容器的https地址,http地址,ssh地址
# 分别映射到宿主机的9443,9080, 9022
# 使用docker ps|grep gitlab查看状态, 大约需要4分钟
# Up 2 minutes (health: starting) ---> Up 4 minutes (health)
初始化状态
加载完成状态
step4 配置ssh和http
sudo vim /tmp/gitlab/config/gitlab.rb
# 设置
gitlab_rails['gitlab_shell_ssh_port'] = 9022
external_url 'http://172.16.23.130:9080' # 这会把内部的80port变为9080
wq! # 保存
# 停止当前容器
docker stop $(docker ps -a | grep gitlab | awk '{print $1}')
# 删除当前容器
docker rm $(docker ps -a | grep gitlab | awk '{print $1}')
step5 从新启动容器
# 注意 这里映射变为9080:9080
sudo docker run --detach \
--name "gitlab" \
--hostname "172.16.23.130" \
--publish 172.16.23.130:9443:443 \
--publish 172.16.23.130:9080:9080 \
--publish 172.16.23.130:9022:22 \
--volume /tmp/gitlab/logs:/var/log/gitlab \
--volume /tmp/gitlab/config:/etc/gitlab \
--volume /tmp/gitlab/data:/var/opt/gitlab \
--restart always \
-d gitlab/gitlab-ce:latest
step6 登录gitlab
在浏览器输入:
http://172.16.23.130:9080/
首次登陆设置密码
首次登陆会让你设置初始密码
首次登陆
默认账户名为 root
登陆成功
注意事项:
1. 首次运行容器时候可能会出现 不停重启的情况,这是由于映射文件夹权限的问题,无法写入
2. 将ssh秘钥加入后,git clone http 会让你输入以密码,之后就免密了
3. 其他人员注册后需要root管理员同意
网友评论