前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于docker搭建gitlab

基于docker搭建gitlab

作者头像
py3study
发布2020-08-17 10:41:11
1.5K0
发布2020-08-17 10:41:11
举报
文章被收录于专栏:python3python3

一、概述

GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

1.png
1.png

二、搭建

环境说明

操作系统:centos 7.6

docker版本:19.03.12

ip地址:192.168.31.145

配置:2核4g

拉取镜像

代码语言:javascript
复制
docker pull gitlab/gitlab-ce

运行

代码语言:javascript
复制
mkdir -p /data/gitlab/
docker run -d \
  --restart=always \
  --name=gitlab-ce \
  -p 8443:443 -p 8090:80 -p 8022:22 \
  -v /data/gitlab/config:/etc/gitlab \
  -v /data/gitlab/logs:/var/log/gitlab \
  -v /data/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce

查看日志

代码语言:javascript
复制
docker logs -f gitlab-ce

等待10分钟,输入如下:

代码语言:javascript
复制
...
2020-07-23_06:03:55.07085 t=2020-07-23T06:03:55+0000 lvl=info msg="Starting DB migration" logger=migrator
2020-07-23_06:03:55.07856 t=2020-07-23T06:03:55+0000 lvl=info msg="Starting plugin search" logger=plugins
2020-07-23_06:03:55.11010 t=2020-07-23T06:03:55+0000 lvl=info msg="HTTP Server Listen" logger=http.server address=127.0.0.1:3000 protocol=http subUrl=/-/gra

出现以上信息,表示启动成功了。

三、配置文件

修改ip和端口

代码语言:javascript
复制
cd /data/gitlab/config
cp gitlab.rb gitlab.rb.bak
vi gitlab.rb

代码语言:javascript
复制
# external_url 'GENERATED_EXTERNAL_URL'

修改为:

代码语言:javascript
复制
external_url 'http://gitlab.aliyun.com'

注意:这里表示gitlab的访问url,如果需要域名访问,这里必须指定为域名才行。

代码语言:javascript
复制
# gitlab_rails['gitlab_ssh_host'] = 'ssh.host_example.com'

修改为:

代码语言:javascript
复制
gitlab_rails['gitlab_ssh_host'] = 'gitlab.aliyun.com'

注意:这里表示gitlab的ssh访问地址

代码语言:javascript
复制
# gitlab_rails['gitlab_shell_ssh_port'] = 22

修改为:

代码语言:javascript
复制
gitlab_rails['gitlab_shell_ssh_port'] = 8022

注意:这里表示gitlab的ssh端口

修改邮箱

代码语言:javascript
复制
# gitlab_rails['smtp_enable'] = true
# gitlab_rails['smtp_address'] = "smtp.server"
# gitlab_rails['smtp_port'] = 465
# gitlab_rails['smtp_user_name'] = "smtp user"
# gitlab_rails['smtp_password'] = "smtp password"
# gitlab_rails['smtp_domain'] = "example.com"
# gitlab_rails['smtp_authentication'] = "login"
# gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab_rails['smtp_tls'] = false

修改为:

代码语言:javascript
复制
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "aliyun@163.com"
gitlab_rails['smtp_password'] = "123456"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

注意:请根据实际情况填写。

代码语言:javascript
复制
# gitlab_rails['gitlab_email_from'] = 'example@example.com'

修改为:

代码语言:javascript
复制
gitlab_rails['gitlab_email_from'] = 'aliyun@163.com'

注意:这里表示gitlab的发件人地址

重启gitlab

代码语言:javascript
复制
docker exec -it gitlab-ce gitlab-ctl reconfigure
docker restart gitlab-ce

四、nginx发布gitlab

安装nginx

代码语言:javascript
复制
yum install -y nginx
mkdir -p /data/log/nginx
nginx

配置文件

代码语言:javascript
复制
vi /etc/nginx/conf.d/gitlab.aliyun.com.conf

内容如下:

代码语言:javascript
复制
server {
 listen 80;
 server_name gitlab.aliyun.com;
 charset utf-8;
 access_log /data/log/nginx/gitlab.aliyun.com.access.log main;
 error_log /data/log/nginx/gitlab.aliyun.com.error.log;
 client_max_body_size 3072m;
 location / {
   index index.html index.htm;
   proxy_pass http://192.168.31.145: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;
 }
}

注意:请根据实际情况填写。

重新加载配置

代码语言:javascript
复制
nginx -s reload

访问页面

代码语言:javascript
复制
http://gitlab.aliyun.com

输入新的密码,比如:abcd@1234

重新登录页面,用户名:root,密码就是刚才修改的。

1.png
1.png

效果如下:

1.png
1.png

五、切换中文

gitlab 官方已经开始支持多语言,中文设置方法: 依次点击工具栏最右侧用户头像—>Settings—>Preferred—>Localization 点击Language下面的选择框,选择中文

1.png
1.png

刷新页面,效果如下:

1.png
1.png
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
  • 二、搭建
    • 环境说明
      • 拉取镜像
        • 运行
        • 三、配置文件
          • 修改ip和端口
            • 修改邮箱
              • 重启gitlab
              • 四、nginx发布gitlab
                • 安装nginx
                  • 配置文件
                    • 访问页面
                    • 五、切换中文
                    相关产品与服务
                    容器服务
                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档