Docker 部署 GitLab
环境: centos7 , docker18
1. 拉取镜像
docker pull gitlab/gitlab-ce
2. 开启容器
docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
# -d:后台运行 # -p:将容器内部端口向外映射 # --name:命名容器名称 # -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
3. 配置
按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机路径:/home/gitlab/config/gitlab.rb)。
# gitlab.rb文件内容默认全是注释
$ vim /home/gitlab/config/gitlab.rb
# 配置http协议所使用的访问地址,不加端口号默认为80 external_url 'http://192.168.91.128' # 配置ssh协议所使用的访问地址和端口 gitlab_rails['gitlab_ssh_host'] = '192.168.91.128' gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口 :wq #保存配置文件并退出
4. 重启容器
docker restart gitlab
此时项目的仓库地址就变了。如果ssh端口地址不是默认的22,就会加上ssh:// 协议头
打开浏览器输入ip地址(因为我的gitlab端口为80,所以浏览器url不用输入端口号,如果端口号不是80,则打开为:ip:端口号)
打开浏览器输入ip地址(因为我的gitlab端口为80,所以浏览器url不用输入端口号,如果端口号不是80,则打开为:ip:端口号)
5. 打开浏览器:http://192.168.91.128
默认账号:root
默认密码可在容器中的配置文件查看
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
登录成功
6. 创建一个新项目
7. ssh设置
用户本地安装好git后,使用 git bash 生成 ssh,写入正确的邮箱
ssh-keygen -t rsa -C 'xxx@xxx.com'
一路回车,生成密钥
查看密钥
# ~表示用户目录,比如我的windows就是C:UsersAdministrator,并复制其中的内容
$ cat ~/.ssh/id_rsa.pub
打开gitlab,找到Profile Settings-->SSH Keys--->Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框
8. 设置用户配置,下载代码
$ git config --global user.name "你的名字" $ git config --global user.email "你的邮箱"
查看配置
git config --global --list
完成
参考:https://www.jianshu.com/p/080a962c35b6