逐步搭建gogs+drone自动化---gogs篇

搭建gogs

什么是gogs

Gogs(go git serve)是一款极易搭建的轻量级自助的Git服务,基本能使用到git功能全部都,还有工单系统也挺适合于小团队的,并且市面上最低配置的服务器都能满足系统最低硬件要求。

前期准备

首先准备好服务器(也可以本地搭建),其次了解一些基础的docker操作和linux命令。因为此次是基于阿里云服务器进行,所以本地搭建不做介绍。

  • 服务器: 阿里云(1核2G) centOS 7.7.1908
  • mysql:5.7 (5.7及以上,低版本会产生gogs报错主索引长度不够 Specified key was too long; max key length is 764 bytes )
  • gogs镜像:gogs/gogs:0.12.3

安装gogs

  1. 准备一个映射目录,存放gogs的配置文件,方便后期修改配置。

    cd var
    mkdir gogs
    

    这里主机路径使用的是: /var/gogs
    gogs容器目录结构:
    /data
    ├── /git
    │ ├── /.ssh
    │ │ └──environment 环境变量
    │ ├── /gogs-repositories git仓库
    │ └── .gitconfig 配置
    ├── /gogs
    │ ├──/conf gogs 配置文件
    │ │ └── app.ini (/install 页面的配置))
    │ ├──/data 数据
    │ └──/log 日志
    └── /ssh 存放秘钥
    一般来说,我们只需要映射 /var/gogs:/data/gogs。

  2. 端口映射,安全组需要放行两个端口,一个http服务,一个ssh服务。我这里使用的使用的(1000,1001)

    • 主机端口:容器内部端口
    • 1001:22 ssh端口映射(git@xxx.xx.xx.xx:1001/username/test.git 下载路径)
    • 1000:3000 http映射(访问gogs页面的端口)
  3. 运行

    • docker pull gogs/gogs:0.12.3
    • mkdir -p /var/gogs
    • docker run --name=gogs -d -p 1001:22 -p 1000:3000 -v /var/gogs:/data/gogs
  4. 访问ip+上面映射主机的端口号(xxx.xxx.xxx.xxxx:1000)

如果,上面映射文件中,没有默认提供的/var/gogs/conf/app.ini文件,那么我们就会被重定向到xxx.xxx.xxx.xxxx:1000/install进行配置。具体如下,需要修改的地方请对照自己情况修改,其余地方可以不改。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t2FBYTnP-1605539537105)(/images/gogsinstall.png)]

这部分需要修改的地方
1. 配置数据库,如果不需要可以直接使用内置的SQLite3
2. 修改域名,此处影响ssh clone地址
3. 修改ssh端口为 服务器映射端口 而不是 容器自身的22端口
4. 修改应用url
其余地方都可以使用默认配置。
ps:如果是第一次搭建,建议不要勾选 `需要登录后浏览`,如果勾选了这个选项会增加后续构建的工作量。

如果不想带端口号,可以设置2.域名(gogs.my.com)4. 应用url(http://gogs.my.com), 然后再nignx中将这个域名(gogs.my.com)的访问全部代理到映射的http端口(1000)。

server
{
    listen 80;
    server_name gogs.my.com;  
    location /{
        proxy_pass http://localhost:2020; 
        proxy_set_header Host            $host;
        proxy_set_header X-Real-IP       $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    access_log  /www/wwwlogs/access.log;
}

还需要在nignx里面配置允许下划线开头的cookie,不然创建仓库会报错。

underscores_in_headers on; # 加载http和serve都可以

如果在/var/gogs/conf/app.ini中配置了,则直接跳过install这一步,进入首页.
配置文件,加注释的部分是需要修改的,其余可以直接使用默认。(使用的时候请删掉注释,app.ini中不允许有注释

BRAND_NAME = Gogs
RUN_USER   = git
RUN_MODE   = prod

[database]
TYPE     = mysql
HOST     = 公网ip地址:3306 #mysql链接地址
NAME     = gogs
USER     = gogs
PASSWORD = gogs
SSL_MODE = disable
PATH     = /app/gogs/data/gogs.db

[repository]
ROOT = /data/git/gogs-repositories

[server]
DOMAIN           = gogs.my.club # ssh 域名
HTTP_PORT        = 3000 
EXTERNAL_URL     = http://gogs.my.club/ # 应用url
DISABLE_SSH      = false
SSH_PORT         = 1000 # 应用端口
START_SSH_SERVER = false
OFFLINE_MODE     = false

[mailer]
ENABLED = false

[auth]
REQUIRE_EMAIL_CONFIRMATION  = false
DISABLE_REGISTRATION        = false
ENABLE_REGISTRATION_CAPTCHA = true
REQUIRE_SIGNIN_VIEW         = false

[user]
ENABLE_EMAIL_NOTIFICATION = false

[picture]
DISABLE_GRAVATAR        = false
ENABLE_FEDERATED_AVATAR = false

[session]
PROVIDER = file

[log]
MODE      = file
LEVEL     = Info
ROOT_PATH = /app/gogs/log

[security]
INSTALL_LOCK = true
SECRET_KEY   = BpsA1YSADSocDd7

至此,gogs已经搭建完毕,后续我们可以直接修改/var/gogs/conf/app.ini中的配置,然后重启容器就可以修改赔了。

下一篇我们基于gogs用过drone搭建自动话构建。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值