https://hub.docker.com/r/gitlab/gitlab-ce
# yum jenkins & GitLab-CE
https://abc.htmltoo.com/thread-46323.htm
# gitlab-runner 部署
https://abc.htmltoo.com/thread-46548.htm
#Run
docker run -d -p 8090:80 -p 8022:22 --name gitlab --restart=always --privileged=true --hostname gitlab -v /data/file:/data/file -v /data/site:/data/site -v /data/site/docker/data/gitlab/etc:/etc/gitlab -v /data/file/logs/gitlab:/var/log/gitlab -v /data/site/docker/data/gitlab/opt:/var/opt/gitlab gitlab/gitlab-ce:latest
http://g.htmltoo.com:8090 root/root
-查看默认密码
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
-权限
chmod -R 777 /data/site/docker/data/gitlab
docker exec -it gitlab /bin/bash
ruby --version
git --version
redis-cli --version
psql --version
#重置密码
gitlab-rails console -e production
-查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
-修改密码为lhx123456
user.password='lhx123456'
-保存
user.save!
-退出
exit
#Gitlab备份及恢复
--备份
-默认将备份文件保存至/var/opt/gitlab/backups, /data/site/docker/data/gitlab/opt/backups
gitlab-rake gitlab:backup:create
docker cp gitlab:/var/opt/gitlab/backups/1655195319_2022_06_14_14.2.6_gitlab_backup.tar /data/bak/gitlab/20220614
--恢复
-停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore BACKUP=1606752150_2020_11_30_11.10.1
gitlab-ctl start
---变更域名,ip
vim /etc/gitlab/gitlab.rb
external_url "http://ip:8090"
gitlab_rails['gitlab_shell_ssh_port'] = 8022
nginx['listen_port'] = 80
gitlab_rails['time_zone'] = 'Asia/Shanghai'
-头像显示问题
gitlab_rails['gravatar_plain_url'] = 'http://cdn.libravatar.org/avatar/
gitlab_rails['gravatar_ssl_url'] = 'https://cdn.libravatar.org/avatar/
-内存占用过多问题
unicorn['worker_processes'] = 2
unicorn['worker_memory_limit_max'] = "1280 * 1 << 20"
postgresql['shared_buffers'] = "256MB"
-
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_gitaly_backup_path'] = "/opt/gitlab/embedded/bin/gitaly-backup"
gitlab_rails['backup_archive_permissions'] = 0777
gitlab_rails['backup_pg_schema'] = 'public'
gitlab-ctl reconfigure
gitlab-ctl restart
---页面点击项目报404,清除缓存
gitlab-rake cache:clear
---登录进去后报500
-升级数据库关系
gitlab-rake db:migrate
gitlab-ctl reconfigure
gitlab-ctl restart
--开启https
docker run -d -p 443:443 -p 80:80 --name gitlab --restart=always --privileged=true --hostname git.qianbitou.cn -v /data/file:/data/file -v /data/site:/data/site -v /data/site/docker/data/gitlab/certs:/etc/gitlab/ssl:ro -v /data/site/docker/data/gitlab/etc:/etc/gitlab -v /data/file/logs/gitlab:/var/log/gitlab -v /data/site/docker/data/gitlab/opt:/var/opt/gitlab gitlab/gitlab-ce:latest
-
hostname和配置文件中的external_url对应,去掉协议名称。
external_url 'https://gitlab.you_domain.com:443'
#配置http自动跳转到https协议的地址;
nginx['redirect_http_to_https'] = true
#80端口是容器内的端口,如果不配置http://宿主IP:80/将不可访问;
nginx['redirect_http_to_https_port'] = 80
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.you_domain.com.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.you_domain.com.key"
#配置监听容器内的443端口,注意不是外面主机的443端口
nginx['listen_port'] = 443
--这里的端口会影响 GitLab 项目的 ssh 地址,所以直接配置宿主机映射的端口
gitlab_rails['gitlab_shell_ssh_port'] = 2022
测试地址访问。
https://git.qianbitou.cn:443/
-宿主机 Nginx
...
# 将请求代理到 GitLab 容器
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_pass https://127.0.0.1:443;
proxy_pass https://172.18.0.12:443;
}
# 对 GitLab 的静态资源访问也要做转发,否则页面样式可能出错
location ~ .*.(js|css|png)$ {
#proxy_pass https://127.0.0.1:443;
proxy_pass https://172.18.0.12:443;
}
...
server
{
listen 2022;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://172.18.0.12:22;
}
}
# nginx
cat git.conf
server
{
listen 80;
server_name git.qianbitou-beta.cn;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}