赞
踩
1:安装
- docker run --detach \ # 后台运行-d
- -p 8443:443 \ # 容器443端口映射到主机8443端口用于https
- -p 1080:80 \ # 容器80端口映射到主机1080端口用于http
- -p 1022:22 \ # 容器22端口映射到主机1022端口用于ssh
- --name gitlab \ # 指定容器名称
- --volume /var/lib/docker/volumes/gitlab-data/etc:/etc/gitlab \ # 挂载将本地挂载到容器 本地:容器
- --volume /var/lib/docker/volumes/gitlab-data/log:/var/log/gitlab \
- --volume /var/lib/docker/volumes/gitlab-data/data:/var/opt/gitlab \
- -v /etc/localtime:/etc/localtime \ # 同步主机时区
- --restart=unless-stopped \ # 容器运行中非手动退出时自动重启
- gitlab/gitlab-ce
- # docker-compose 方式
- version: "3"
- services:
- gitlab:
- image: gitlab/gitlab-ce
- container_name: gitlab
- ports:
- - 8443:443
- - 1080:80
- - 1022:22
- volumes:
- - /etc/localtime:/etc/localtime:ro
- - ./services/gitlab/etc:/etc/gitlab:rw
- - ./services/gitlab/data:/var/opt/gitlab:rw
- - ./logs/gitlab:/var/log/gitlab:rw
- restart: always
- logging:
- driver: "json-file"
- options:
- max-size: "500m"
- networks:
- my_bridge:
- aliases:
- - gitlba
- environment:
- TZ: "Asia/Shanghai"
- # SVN配置 https://blog.csdn.net/yeqinghanwu/article/details/126984838
- svn:
- image: elleflorio/svn-server:latest
- container_name: svn
- ports:
- - 3080:80
- - 3690:3690
- volumes:
- - /etc/localtime:/etc/localtime:ro
- - ./services/svn/config:/etc/subversion:rw
- - ./services/svn/data:/home/svn:rw
- restart: always
- logging:
- driver: "json-file"
- options:
- max-size: "500m"
- networks:
- my_bridge:
- aliases:
- - svn
- environment:
- TZ: "Asia/Shanghai"
-
- networks:
- my_bridge:
- driver: bridge

2:创建启动脚本方便以后启动
- #!/bin/bash
-
- serverName="gitlab"
- imageName="gitlab/gitlab-ce"
-
- function runServer(){
- docker run --detach \
- -p 8443:443 \
- -p 1080:80 \
- -p 1022:22 \
- --name ${serverName} \
- --volume /var/lib/docker/volumes/gitlab-data/etc:/etc/gitlab \
- --volume /var/lib/docker/volumes/gitlab-data/log:/var/log/gitlab \
- --volume /var/lib/docker/volumes/gitlab-data/data:/var/opt/gitlab \
- -v /etc/localtime:/etc/localtime \
- --restart=unless-stopped \
- ${imageName}
- }
-
- runningCount=`docker ps -f status=running -f status=restarting | grep -w ${serverName} |wc -l`;
- if [[ ${runningCount} > 0 ]];then
- echo "docker restart 重启项目:${serverName}"
- docker restart ${serverName}
- exit 0
- fi
-
- serverCount=`docker ps -f status=exited -f status=created | grep -w ${serverName} |wc -l`;
- # 判断是否已经启动过,且端口为默认端口
- if [[ ${serverCount} > 0 ]];then
- if [[ ${serverCount} > 1 ]]; then
- echo "Error : 查找到多个 ${serverName} 容器,请手动启动"
- exit 1
- else
- echo "docker start 启动项目:${serverName}"
- docker start ${serverName}
- fi
- else
- name=${imageName%%:*}
- tag=${imageName##*:}
- # 判断是否有该镜像
- imageCount=`docker images | grep -w ${name} | wc -l`;
-
- if [[ ${imageCount} > 0 ]];then
- echo "docker run 第一次启动项目: ${imageName}"
- runServer
- else
- echo "Error : 还没有该镜像"
- exit 1
- fi
- fi

3:配置gitlab
vim /var/lib/docker/volumes/gitlab-data/etc/gitlab.rb
nginx['listen_port'] = 80 # gitlab nginx 端口,默认80
external_url 'http://ip:1080' # 配置http协议使用的访问地址
gitlab_rails['gitlab_ssh_host'] = 'ip' #配置ssh协议使用的访问地址
gitlab_rails['gitlab_shell_ssh_port'] = 1022 #配置ssh协议使用的访问端口
修改默认头像地址
gitlab_rails[gravatar_plain_url]=http://sdn.geekzu.org/avatar/%hash?s=%size&d=identicon
gitlab_rails[gravatar_ssl_url]=https://sdn.geekzu.org/avatar/%hash?s=%size&d=identicon
修改完成后重启 docker restart gitlab
4:管理员密码修改
第一次访问时会要求修改初始化账号root密码
如果后期忘记密码也可以修改密码
- # 进入docker gitlab
- docker exec -it gitlab /bin/bash
- # 执行命令
- gitlab-rails console -e production
- user = User.where(id: 1).first
- user.password="密码"
- user.password_confirmation="密码"
- user.save!
- quit
5:配置发送邮件(邮箱需要开启smtp服务)
vim /var/lib/docker/volumes/gitlab-data/etc/gitlab.rb
- gitlab_rails['smtp_enable'] = true
- gitlab_rails['smtp_address'] = "smtp.163.com"
- gitlab_rails['smtp_port'] = 465
- gitlab_rails['smtp_user_name'] = "email@163.com"
- gitlab_rails['smtp_password'] = "password"
- gitlab_rails['smtp_domain'] = "smtp.163.com"
- gitlab_rails['smtp_authentication'] = "login"
- gitlab_rails['smtp_enable_starttls_auto'] = true
- gitlab_rails['smtp_tls'] = true
- gitlab_rails['smtp_openssl_verify_mode'] = 'none'
- gitlab_rails['gitlab_email_from'] = 'email@163.com'
- gitlab_rails['gitlab_email_enabled'] = true
- gitlab_rails['gitlab_email_display_name'] = 'gitlab'
- gitlab_rails['gitlab_email_reply_to'] = 'email@163.com'
- gitlab_rails['gitlab_email_subject_suffix'] = '[GITLAB]'
docker exec -it gitlab /bin/bash # 进入容器发送测试
gitlab-rails console
ActionMailer::Base.delivery_method显示邮件发送协议
ActionMailer::Base.smtp_settings查看邮件配置
Notify.test_email('收件人邮箱', '标题', '内容').deliver_now
1:安装相关依赖
sudo yum install -y curl policycoreutils-python openssh-server
systemctl enable sshd
systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
systemctl restart firewalld
2:添加镜像仓库
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce
以上方法如果慢可以修改国内源
ls -l /etc/yum.repos.d/
mv /etc/yum.repos.d/gitlab_gitlab-ce.repo /etc/yum.repos.d/gitlab_gitlab-ce.repo.bak #备份
vim /etc/yum.repos.d/gitlab-ce.repo
- [gitlab-ce]
- name=Gitlab CE Repository
- baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
- gpgcheck-0
- enabled=1
yum makecache
yum install gitlab-ce
3:配置并启动
gitlab-ctl reconfigure # 首次启动也要用此命令。重新加载配置并启动
gitlab-ctl start # 启动
gitlab-ctl stop # 停止
4:修改配置文件
gitlab-ctl stop
vim /etc/gitlab/gitlab.rb 配置项可参考上方docker方式安装
gitlab-ctl restart postgresql
gitlab-ctl reconfigure
gitlab-ctl start
5:卸载
gitlab-ctl stop
rpm -e gitlab-ce
ps aux | grep gitlab # 查看守护进程
kill -9
find / -name gitlab | xargs rm -rf # 删除所有包含gitlab的文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。