docker部署Gitlab Git


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;
    }
}


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回