docker安装gitlab
docker安装gitlab
安装步骤
1.先建gitlab文件夹
cd /usr/local/docker
mkdir gitlab
2.docker 安装配置阿里云镜像源
1. sudo mkdir -p /etc/docker
2. sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://yxzrazem.mirror.aliyuncs.com"]
}
EOF
3.sudo systemctl daemon-reload
4.sudo systemctl restart docker
3.gitlab 镜像拉取
# gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本
$ docker pull gitlab/gitlab-ce
4.提前建好docker文件夹 为了挂载镜像路径
cd /usr/local/docker/gitlab
mkdir config
mkdir logs
mkdir data
5.编写启动配置文件
vim startGitlab.sh
配置文件内容
docker run -d \
-p 443:443 \
-p 9001:80 \
-p 9002:22 \
--name gitlab \
--restart always
-v /usr/local/docker/gitlab/config:/etc/gitlab \
-v /usr/local/docker/gitlab/logs:/var/log/gitlab \
-v /usr/local/docker/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
6.给配置文件赋权
chmod -R 777 startGitlab.sh
启动gitlab
./startGitlab.sh
7.修改gitlab.rb 文件
vim /usr/local/docker/gitlab/config/gitlab.rb
# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.xxx.xxx'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.xxx.xxx'
gitlab_rails['gitlab_shell_ssh_port'] = 9002 # 此端口是run时22端口映射的222端口
8.查看已开启的端口
firewall-cmd --list-ports
查看防火墙状态
firewall-cmd --state
开启防火墙:
[root@localhost gitlab]# systemctl start firewalld
在防火墙中对外开启此端口:开启9001和9002端口
[root@localhost gitlab]# firewall-cmd --zone=public --add-port=9001/tcp --permanent
[root@localhost gitlab]# firewall-cmd --reload
重新启动gitlab加载配置
docker restart gitlab
此时项目的仓库地址就变了。如果ssh端口地址不是默认的22,就会加上ssh:// 协议头
打开浏览器输入ip地址(因为我的gitlab端口不是80,所以浏览器url要输入端口号,如果端口号不是80,则打开为:ip:端口号)
http://192.168.227.xxx:9001/
登录gitlab修改密码
初始密码位置
vim /usr/local/docker/gitlab/config/initial_root_password
接下来就可以创建项目了
没有卸载干净的情况
由于汉化版本都低于英文版本,为了不产生不必要的麻烦就要先下载汉化包,查看汉化包的版本号,根据汉化包的版本号来安装指定版本的GitLab。若你安装的版本是最新的比汉化包高太多,那么你汉化时需要忽略数百到上千次的文件。若你是刚装的GitLab,可以考虑重新卸载后安装和汉化包版本一致的版本。下面是如何彻底卸载GitLab。
1、停止gitlab
docker stop gitlab
2、卸载gitlab(注意这里写的是gitlab-ce)
rpm -e gitlab-ce
3、查看gitlab进程
ps aux | grep gitlab
4、杀掉第一个进程(就是带有好多…的进程) kill -9 进程号
杀掉后,在ps aux | grep gitlab确认一遍,还有没有gitlab的进程。若还存在,可以把它的主要组件的进程也杀一边。
run: alertmanager: (pid 100019) 13376s; run: log: (pid 82025) 86211s
run: gitaly: (pid 100032) 13376s; run: log: (pid 82041) 86211s
run: gitlab-monitor: (pid 100047) 13375s; run: log: (pid 82047) 86211s
run: gitlab-workhorse: (pid 100054) 13375s; run: log: (pid 82031) 86211s
run: logrotate: (pid 121160) 2574s; run: log: (pid 82039) 86211s
run: nginx: (pid 100070) 13374s; run: log: (pid 82037) 86211s
run: node-exporter: (pid 100077) 13374s; run: log: (pid 82027) 86211s
run: postgres-exporter: (pid 100082) 13373s; run: log: (pid 82023) 86211s
run: postgresql: (pid 100097) 13372s; run: log: (pid 82035) 86211s
run: prometheus: (pid 100100) 13372s; run: log: (pid 82021) 86211s
run: redis: (pid 100114) 13372s; run: log: (pid 82033) 86211s
run: redis-exporter: (pid 100118) 13371s; run: log: (pid 82043) 86211s
run: sidekiq: (pid 100124) 13370s; run: log: (pid 82029) 86211s
run: unicorn: (pid 100136) 13369s; run: log: (pid 82045) 86211s
日志的进程不用管。
5、删除所有包含gitlab文件
find / -name gitlab | xargs rm -rf
当然若你没有全杀权限。那么可以可以把这三个目录给干掉也可以:
rm -rf /opt/gitlab
rm -rf /etc/gitlab
rm -rf /var/log/gitlab