Gogs

Gogs 是一款极易搭建的自助 Git 服务。

Gogs 是用 Go 语言开发的,最简单、最快速和最轻松的方式搭建自助 Git 服务。

  • 易安装
    除了可以根据操作系统平台通过 二进制运行,还可以通过 DockerVagrant,以及 包管理
  • 跨平台
    任何 Go 语言支持的平台都可以运行 Gogs,包括 Windows、Mac、Linux 以及 ARM。
  • 轻量级
    一个廉价的树莓派的配置足以满足 Gogs 的最低系统硬件要求。最大程度上节省服务器资源
  • 开源化
    所有的代码都开源在 GitHub

并且支持多种数据库,例如 MySQL、MSSQL、SQLite3 等。本文就以 Mysql 及 SQLite3 为例,介绍下部署配置。下面都以 docker-compose 方式部署,安装方法见官网

Gogs + MySQL

1. 配置文件

docker-compose.yml



version: "3"
services:
  gogs:
    restart: always # 自动重启
    image: gogs/gogs
    container_name: gogs
    ports:
      - "6022:22" # ssh 端口
      - "6023:3000" # Web 访问端口
    volumes:
      - ./gogs-data:/data # 数据存储
    depends_on:
      - mysql
  mysql:
    restart: always
    image: mysql:5
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_USER: gogs # gogs 访问数据库用的账号
      MYSQL_PASSWORD: gogs123456
    ports:
      - "6006:3306"
    volumes:
      - ./conf/my.cnf:/etc/mysql/my.cnf
      - ./mysql:/var/lib/mysql
      - /etc/localtime:/etc/localtime:ro
    # 一般会对 MySQL 进行配置,所以上面采用了 cnf 文件的形式,如果只是修改字符集,也可以使用 command 的形式,如下面所示
    # command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci



my.cnf



[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci



注意: MYSQL_USER 并非必须,安装页面会要求输入用户名,如果没有配置 MYSQL_USER ,也可以用 root 账户,此时记得设置 MYSQL_ROOT_PASSWORD

2. 部署

拷贝上述文件到服务器上

然后执行docker-compose up -d,会自动拉取镜像,并启动容器。

如果不是用root访问数据库,就先不急着打开浏览器安装 Gogs,先用 HediSQL(访问数据库工具)打开数据库,赋予gogs用户远程访问权限,否则安装是会报错。

数据库设置不正确:Error 1044: Access denied for user 'gogs'@'%' to database 'gogs',就是没有给gogs访问权限。




docker单机部署fabric docker部署gogs_数据库


还需要自己创建个数据库,例如:gogs(Gogs 能自动创建更好)。

配置好数据库权限后,用浏览器打开http://ip:6023进行 Gogs 的安装。

需要修改的内容:


数据库主机: mysql:3306
数据库用户: gogs
数据库用户密码: ••••••••••

域名: localhost # 改成自己的
SSH 端口号 : 6022
HTTP 端口号 : 6023
应用 URL : http://localhost:6023/


docker单机部署fabric docker部署gogs_docker go 端口_02


安装上述配置好后,点击立即安装,就大功告成了。


docker单机部署fabric docker部署gogs_数据库_03


 可选设置中,可以禁用注册功能,在禁用注册功能时需要配置管理员账号。
PS:管理员账号不能为 admin,会报错

Gogs + SQLite3

方式就更简单了

1. 配置文件

docker-compose.yml


version: "3"
services:
  gogs:
    restart: always    # 自动重启
    image: gogs/gogs
    container_name: gogs
    ports:
      - '6022:22'      # ssh 端口
      - '6023:3000'    # Web 访问端口
    volumes:
      - ./gogs-data:/data   # 数据存储


2. 部署

拷贝上述文件到服务器上

然后执行docker-compose up -d,会自动拉取镜像,并启动容器。

用浏览器打开http://ip:6023进行 Gogs 的安装。记得修改端口和域名,然后点击安装就可以了。


docker单机部署fabric docker部署gogs_docker_04