docker安装gitlab
近期由于想自己搭建一个gitlab的环境,把自己的代码迁移过来,于是自己动手搭建了一个gitlab仓库,正好也把搭建的过程记录一下,留下点痕迹。
话不多说,我们正式开始~
我的机器是华为云的Centos7版本,同样阿里云也是一样,或者用自己的虚拟机也是一样。
首先,确保你的机器安装了docker,docker的安装呢,可以参考菜鸟教程,很详细。 CentOS Docker 安装 | 菜鸟教程 (runoob.com)
接下来,我们进入正题:
1.首先第一步拉取镜像:
docker pull gitlab/gitlab-ce
2.查看镜像:
docker images
3.接下来安装镜像,生成容器
# 启动容器
docker run -itd \
--hostname gitlab.******.cn \
--publish 443:443 --publish 8080:80 --publish 222:22 \
--restart always \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
这里简单解释一下,
| 命令 | 含义 |
|---|---|
| -i | 以交互模式运行容器,通常与 -t 同时使用命令解释 |
| -t | 为容器重新分配一个伪输入终端,通常与 -i 同时使用 |
| -d | 后台运行容器,并返回容器ID |
| --hostname | 这写你的域名,或者你用ip也可以,配置gitlab也可以用子域名,在你的nginx里配置一下就可以,具体可以参考这个下面 |
| -p 8080:80 | 将容器内80端口映射至宿主机8080端口,这是访问gitlab的端口,如果有端口冲突8080也可以改成别的端口 |
| -p 222:22 | 将容器内22端口映射至宿主机222端口,这是访问ssh的端口 |
| -volume /srv/gitlab/config:/etc/gitlab | 或者用-v都可以,将容器/srv/gitlab/config目录挂载到宿主机/etc/gitlab目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样 |
| --restart always | 容器自启动 |
| --privileged=true | 让容器获取宿主机root权限 |
| --name gitlab | 设置容器名称为gitlab |
| gitlab/gitlab-ce | 镜像的名称,这里也可以写镜像ID |
查看容器:
docker ps -a
这时候,容器已经安装成功了,并且启动了,接下来我们进入容器内部修改相关配置
4.进入容器内部,修改配置:
#进入容器内部
docker exec -it gitlab /bin/bash
#修改gitlab.rb
vi /etc/gitlab/gitlab.rb
#加入如下配置
#gitlab访问地址,可以写域名,也可以是IP地址,我这里是域名。如果端口不写的话默认为80端口
external_url 'http://gitlab.*****.cn/'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = 'gitlab.*****.cn'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 222
# 保存退出
# 让配置生效
gitlab-ctl reconfigure
修改gitlab.yml文件
#修改gitlab.yml
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
#修改端口号
gitlab:
host: gitlab.****.cn #这里也可以写IP地址
port: 8080 # 这里改为8080,就是你最开始运行容器的端口号
https: false
#重启gitlab
gitlab-ctl restart
#退出容器
exit
此时输入域名或者你的IP进行访问:(我这里的域名)
5.配置管理员账号
此时还未配置管理员:
# 进入容器内部
docker exec -it gitlab /bin/bash
# 进入控制台
gitlab-rails console -e production
# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
# 修改密码为lhx123456
user.password='lhx123456'
# 保存
user.save!
# 退出
exit
6.重启gitlab,登录
docker resatrt gitlab
刚才配置的账号密码进行登录: 账号是:root 密码:你刚才设置的
7. 502错误
如果遇到502:
一个是可能正在启动,
一个是机器配置不足,建议机器配置最低8G内存