美文网首页
docker搭建gitlab

docker搭建gitlab

作者: Odven | 来源:发表于2020-06-18 12:20 被阅读0次

搭建gitlab

1. 拉取gitlab镜像
docker pull ahead180/gitlab:gitlab-zh

2. 查看镜像
docker image ls

3. 创建目录和启动gitlab容器
mkdir -p /data/gitlab_dir/{data,config,logs}
docker container  run -itd --name gitlab-zh --restart=always  -p 80:80 -p 4422:22 -v /data/gitlab_dir/config/:/etc/gitlab -v /data/gitlab_dir/data/:/var/opt/gitlab -v /data/gitlab_dir/logs/:/var/log/gitlab --cpus=2 --memory=3g ahead180/gitlab:gitlab-zh
注意: 映射ssh端口时,一定要宿主机的映射端口和容器内ssh的端口一致。(下面有修改容器内ssh端口的方法)


4. 修改配置文件
cd /data/gitlab_dir/config/
egrep -v "^$|^#"  gitlab.rb 
external_url 'http://192.168.192.157'  # 配置http协议所使用的访问地址,不加端口号默认为80
gitlab_rails['gitlab_ssh_host'] = '192.168.192.157'  # 配置ssh协议所使用的访问地址
gitlab_rails['gitlab_shell_ssh_port'] = 4422  # 配置ssh协议所使用的访问端口
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"  # 备份时用到的目录

5. 重启docker
systemctl restart docker.service
查看
docker container ls
docker container exec -it gitlab-zh bash
root@864c50335b92:/# gitlab-ctl status
run: alertmanager: (pid 8856) 77986s; run: log: (pid 482) 152434s
run: gitaly: (pid 8870) 77986s; run: log: (pid 481) 152434s
run: gitlab-monitor: (pid 8888) 77985s; run: log: (pid 487) 152434s
run: gitlab-workhorse: (pid 8900) 77985s; run: log: (pid 480) 152434s
run: logrotate: (pid 21387) 2384s; run: log: (pid 478) 152434s
run: nginx: (pid 8921) 77984s; run: log: (pid 479) 152434s
run: node-exporter: (pid 9004) 77984s; run: log: (pid 485) 152434s
run: postgres-exporter: (pid 9011) 77983s; run: log: (pid 486) 152434s
run: postgresql: (pid 9022) 77983s; run: log: (pid 501) 152434s
run: prometheus: (pid 9031) 77982s; run: log: (pid 483) 152434s
run: redis: (pid 9045) 77982s; run: log: (pid 489) 152434s
run: redis-exporter: (pid 9050) 77981s; run: log: (pid 484) 152434s
run: sidekiq: (pid 9069) 77980s; run: log: (pid 503) 152434s
run: sshd: (pid 9072) 77979s; run: log: (pid 32) 152445s
run: unicorn: (pid 9093) 77978s; run: log: (pid 488) 152434s

6. 测试.
# 使用http
git clone http://192.168.192.157/root/test.git
正克隆到 'test'...
Username for 'http://192.168.192.157': root
Password for 'http://root@192.168.192.157': 
remote: Counting objects: 7293, done.
remote: Compressing objects: 100% (1234/1234), done.
remote: Total 7293 (delta 5975), reused 7263 (delta 5953)
接收对象中: 100% (7293/7293), 4.99 MiB | 0 bytes/s, 完成.
处理 delta 中: 100% (5975/5975), 完成.
检查连接... 完成。
root@node1:~# ls
backup_gitlab.sh  test

# 使用ssh (记得容器宿主机的cat /proc/sys/net/ipv4/ip_forward的值要是1)
(1) 在客户端生成密钥
(2) 把公钥配置到 GitLab 中
(3) 然后就可以使用了(不用输用户密码)

7. 备份脚本
进入容器
(1) root@864c50335b92:~# cat > /root/backup_gitlab.sh <<EOF 
#!/bin/bash

BACKUP_PATH1="/var/opt/gitlab/backups/"
REMOTE_HOST="root@192.168.192.200"
BACKUP_PATH2="/data/backup_gitlab_dir/"
DAY=5

set -e
exec >> /root/log.log
echo "++++++++++++++++++++++++++"

gitlab-rake gitlab:backup:create
find \$BACKUP_PATH1 -name "*.tar" -ctime +\$DAY -type f -exec rm -rf {} \;
sleep 1
/opt/gitlab/embedded/bin/rsync -e 'ssh -p 4422' --delete -az \${BACKUP_PATH1} \${REMOTE_HOST}:\${BACKUP_PATH2}
EOF

(2) 设置定时任务
crontab -e
0 0 */1 * *  /root/backup_gitlab.sh

(3) 开启cron
root@864c50335b92:~# /etc/init.d/cron restart
 * Restarting periodic command scheduler cron                                                                                                                          
 * Stopping periodic command scheduler cron                                                                                                                    [ OK ] 
 * Starting periodic command scheduler cron

相关文章

网友评论

      本文标题:docker搭建gitlab

      本文链接:https://www.haomeiwen.com/subject/venyxktx.html