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
| ################################################### # 添加外部请求的域名(如果不支持https, 可以改成http) external_url 'https://gitlab.example.com' # 修改gitlab对应的时区 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 ###################################################
#SSL密钥相关配置# 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
| # 域名(https://) external_url 'https://gitlab.example.com' # http重定向到https 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
| # 禁用`gitlab`内置的`nginx` nginx['enable'] = false # 修改成与`nginx`运行时的用户一致 web_server['external_users'] = ['root'] # 监听方式为 tcp gitlab_workhorse['listen_network'] = "tcp" # 下面的192.168.1.24为本机IP,根据实际情况修改,不能为 localhost 或者 127.0.0.1,否则 docker 访问不到,8181是默认监听的端口 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 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/ # Docker安装需要清理临时的一些文 rm -rf /opt/gitlab/embedded/nodes/*
|