docker安装运行gitlab
1 2 3 4 5 6 7 8 9 10
| mkdir -p /data/gitlab/etc /data/gitlab/logs /data/gitlab/data
docker run --name gitlab \ -p 8022:22 -p 8443:443 -p 8080:80 \ --memory 4g \ --restart always \ -v /data/gitlab/etc:/etc/gitlab \ -v /data/gitlab/logs:/var/log/gitlab \ -v /data/gitlab/data:/var/opt/gitlab \ -d gitlab/gitlab-ce:12.3.5-ce.0
|
–name 命令容器的名称
-d 报错容器后台持续运行
-p 暴露端口
-v 挂在目录
配置 GitLab 使用 HTTPS 协议
挂在在容器中配置https
修改配置文件vim /data/gitlab/etc/gitlab.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
external_url 'https://gitlab.example.com'
gitlab_rails['time_zone'] = 'PRC'
gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = 'gitlab@example.com' gitlab_rails['gitlab_email_display_name'] = 'GitLab'
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.163.com" gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = "gitlab@example.com" gitlab_rails['smtp_password'] = "xxxxxx" gitlab_rails['smtp_domain'] = "domian.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false
nginx['redirect_http_to_https'] = true nginx['ssl_certificate'] = "/data/gitlab/ssl/gitlab.example.com.crt" nginx['ssl_certificate_key'] = "/data/gitlab/ssl/gitlab.example.com.key"
|
配置https主要修改参数
1 2 3 4 5 6
| external_url 'https://gitlab.example.com'
nginx['redirect_http_to_https'] = true nginx['ssl_certificate'] = "/data/gitlab/ssl/gitlab.example.com.crt" nginx['ssl_certificate_key'] = "/data/gitlab/ssl/gitlab.example.com.key"
|
修改配置文件就需要进行重启
1 2 3
| gitlab-ctl reconfigure
docker restart gitlab
|
挂在在宿主nginx上配置https
配置文件修改
1 2 3 4 5 6 7 8
| nginx['enable'] = false
web_server['external_users'] = ['root']
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "192.168.1.24:8181"
|
修改完配置重启容器
1 2 3
| docker exec gitlab gitlab-ctl reconfigure gitlab-ctl reconfigure docker restart gitlab
|
宿主nginx 配置文件gitlab.conf
参考:https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/web-server/nginx
需要修改地方
1 2 3 4
| upstream gitlab-workhorse { server unix:/data/gitlab/data/gitlab-workhorse/socket fail_timeout=0; } server_name gitlab.example.com;
|
数据备份
1
| docker exec -t gitlab gitlab-rake gitlab:backup:create
|
命令执行成功后会在 gitlab 容器目录 /var/opt/gitlab/backups 生产文件
数据恢复
确定gitlab版本是否一致
确保将备份备份文件放在 /var/opt/gitlab/backups目录下
1 2 3 4 5 6 7 8 9 10
| gitlab-ctl stop unicorn gitlab-ctl stop sidekiq
gitlab-ctl status
gitlab-rake gitlab:backup:restore BACKUP=1549850985_2019_02_11_11.4.5
gitlab-ctl start
|
汉化
https://gitlab.com/xhang/gitlab
确定版本之后在进行操作
1 2 3 4 5 6 7 8 9 10 11
| cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
wget https://gitlab.com/xhang/gitlab/-/archive/v12.3.5-zh/gitlab-v12.3.5-zh.tar.gz
tar -xvf gitlab-v12.3.5-zh.tar.gz
cp -rf gitlab-v12.3.5-zh/* /opt/gitlab/embedded/service/gitlab-rails/
rm -rf /opt/gitlab/embedded/nodes/*
|