拉取镜像
英文版本
GitLab 分为社区版(Community Edition,缩写为 CE)和 企业版(Enterprise Edition,缩写为 EE)。社区版是免费的,而企业版包含一些收费服务,一般来说个人开发者用社区版就足够了。
docker pull gitlab/gitlab-ce:latest
中文版
docker pull twang2218/gitlab-ce-zh:latest
这里以英文版为例。
创建挂载目录
mkdir -p /home/docker/gitlab/{config,data,logs}
方便日后再本地修改配置,不用再进入容器去修改。
运行
docker run -d -p 8086:80 -p 8443:443 -p 8022:22 --name mygitlab -v /home/docker/gitlab/config/:/etc/gitlab -v /home/docker/gitlab/logs/:/var/log/gitlab -v /home/docker/gitlab/data/:/var/opt/gitlab gitlab/gitlab-ce:latest
- # -d:后台运行
- # -p:将容器内部端口向外映射
- # --name:命名容器名称
- # -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
到这里已经安装成功了,需要等待1~2分钟,让 gitlab 生成配置文件,然后访问 主机ip + 端口即可。
例:192.168.0.200:8086
访问
这里初始访问,首先设置密码 ,然后登录。默认用户名为 root ,密码为 刚刚设置的。
修改配置
当你创建项目后,准备拉取时,会发现 clone 地址完全不对。
http / git 后面跟的地址为 gitlab 容器的id,这样会导致拉取项目时根本不会识别,导致拉取失败,这里要修改一下配置。
进入挂载目录
cd /home/docker/gitlab/data/gitlab-rails/etc
编辑 gitlab.yml 文件
vim gitlab.yml
修改为自己主机 IP 和 映射的访问 端口
进入容器,重启
docker ps 获取容器id
docker exec -it 容器id bash 进入容器
gitlab-ctl restart 重启gitlab
exit 退出容器
修改后千万不要在容器内运行 gitlab-ctl reconfigure 运行了,配置又还原回去了,导致修改失败
再次拉取项目
发现地址已经恢复正常,可以正常拉取项目了。
提醒
到这里,你会发现我根本没有去 改动过 /home/docker/gitlab/config 下的 gitlab.rb 文件。
拉取失败时,我尝试修改过好多次 ,参照网上修改 external_url 路径,最终导致的结果都是页面无法访问了。
最终才发现只用修改 gitlab.ym 文件就可以了。