一、Docker的安装
1、卸载旧版本
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2、使用脚本安装
# 获取、执行脚本、 curl -fsSL https://get.docker.com -o get-docker.sh sh ./get-docker.sh # 设置开启启动 # 设置开机启动,并启动 docker systemctl enable docker systemctl start docker
3、设置镜像仓库
可以使用阿里云的容器镜像服务提供的镜像加速器:
vim /etc/docker/daemon.json
{ "registry-mirrors": ["https://****.mirror.aliyuncs.com"] # 写入自己的镜像加速器 }
然后加载配置文件并且重启docker:
systemctl daemon-reload && systemctl restart docker
二、GitLab安装与配置
1、设置卷位置
在设置其它所有内容之前,配置一个新的环境变量,$GITLAB_HOME
指向配置、日志和数据文件所在的目录。确保目录存在并且已授予适当的权限
export GITLAB_HOME=/gitlab
2、安装
sudo docker run --detach \ --publish 443:443 --publish 80:80 --publish 222:22 \ --name gitlab \ --restart always \ --volume $GITLAB_HOME/config:/etc/gitlab \ --volume $GITLAB_HOME/logs:/var/log/gitlab \ --volume $GITLAB_HOME/data:/var/opt/gitlab \ --shm-size 256m \ gitlab/gitlab-ee:latest
- --detach: -d的缩写,后台启动
- --publish: -p的缩写,其中80:80是将容器的80端口映射为宿主机的80端口,安装成功后可以通过ip:80直接访问
- --name:容器命名
详情配置可参考官网:https://docs.gitlab.com/ee/install/docker.html
3、配置修改
- 关闭防火墙
# 查看防火墙 systemctl status firewalld # 关闭防火墙 systemctl stop firewalld # 永久关闭防火墙 systemctl disable firewalld
- gitlab配置
当通过上述启动容器后,会在/gitlab目录下生成config配置文件的目录,需要进行修改一些参数然后重启容器。
vim /gitlab/config/gitlab.rb
# http协议访问地址 external_url '172.16.52.8' # ssh协议host和port gitlab_rails['gitlab_ssh_host'] = '172.16.52.8' gitlab_rails[''gitlab_shell_ssh_host] = 222 # 修改时区 gitlab_rails['time_zone'] = 'Asia/Shanghai'
然后重启容器:
docker restart gitlab
如果此时出现502错误,如:
一般情况就是内存不足,建议最少4G内存,另外就是修改一下配置文件中超时设置:
# 超时设置 gitlab_rails['webhook_timeout'] = 90
然后重启容器。
三、GitLab的使用
1、初始化
访问 http://172.16.52.8 即可:
然后进行注册和登录即可。
但是当你注册账号进行登录时出现:Your account is pending approval from your GitLab administrator and hence blocked... 这样的问题。就是说你注册的账号需要管理员来审批。
所以需要先通过管理员root进行登录,此时需要进入容器中获取管理员密码:
docker exec -it gitlab bash grep 'Password' /etc/gitlab/initial_root_password
然后使用root账户登录,进行审批:
然后就可以使用之前注册的帐号进行登录了.
2、配置SSH密匙
配置好SSH密匙后,本地代码pull/push就更简单了。
- 生成 ssh
# 命令生成 ssh-keygen -t rsa -C "youremail@example.com" # 获取id_rsa.pub,将生成的id_rsa.pub添加到gitlab中的ssh管理处 cat ~/.ssh/id_rsa.pub
3、创建项目
4、测试ssh配置
复制ssh链接,然后进行clone:
shenjianping@shenjianping-PC:~/PycharmProjects$ git clone ssh://git@172.16.52.8:222/shenjianping/ssh_test.git 正克隆到 'ssh_test'... The authenticity of host '[172.16.52.8]:222 ([172.16.52.8]:222)' can't be established. ECDSA key fingerprint is KLIU5WKxLIf+/46j2Cf+S+LqkUJtYa02vG3M. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[172.16.52.8]:222' (ECDSA) to the list of known hosts. remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 接收对象中: 100% (3/3), 完成.
至此就完成了GitLab的搭建与配置。