参考文献:

https://www.yeboyzq.com/linux/ruanjiananzhuangweihu/1012.html

https://www.jianshu.com/p/d92fd42bb391

一、拉取镜像:

docker pull gogs/gogs

可以对gogs镜像进行二次编辑,Dockerfile如下:

FROM gogs/gogs
RUN echo 'root:admin123' | chpasswd \
&& echo 'git:321#@!' | chpasswd

二、需要映射的目录:

/data 和 /app/gogs

docker-compose.yaml文件

version: ""
services:
gogs:
image: gogs/gogs
container_name: gogs
ports:
- "22:22"
- "3000:3000"
environment:
- TZ=Asia/Shanghai
volumes:
- ./data:/data
- ./gogs:/app/gogs
restart: always
external_links:
- mysql
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: ""
networks:
- mynet
networks:
mynet:
external: true

三、使用compose文件启动容器

四、在配置gogs前,需要有一个数据库,并新建数据库gogs,配置用户名密码

登录gogs:http://ip:3000,并填写配置信息

以上信息填写正确后,点击立即安装,即可安装完成。

五、配置调整

任何修改都是发生在 custom/conf/app.ini 自定义配置文件中

概览

名称 描述
APP_NAME 应用名称,可以改成您的组织或公司名称
RUN_USER 运行应用的用户名称,我们建议您使用 git,但如果您在个人计算机上运行 Gogs,请修改为您的系统用户名称。如果没有正确设置这个值,很可能导致您的应用崩溃
RUN_MODE 鉴于性能和其它考虑,建议在部署环境下修改为 prod 模式。在您完成安装操作时,该值也会被设置为 prod

服务器 (server)

名称 描述
PROTOCOL httphttps
DOMAIN 服务器域名
ROOT_URL 公开的完整 URL 路径
HTTP_ADDR 应用 HTTP 监听地址
HTTP_PORT 应用 HTTP 监听端口号
UNIX_SOCKET_PERMISSION Unix 套接字文件的权限
LOCAL_ROOT_URL 用于 Gogs 工作进程(如:SSH)回访应用的本地(DMZ)URL,一般情况下请保持默认值,除非您的 SSH 服务器节点与 HTTP 并不是同一个节点入口
DISABLE_SSH 当 SSH 功能不可用时可以禁用
START_SSH_SERVER 启用该选项来启动内置 SSH 服务器
SSH_DOMAIN 允许公用网络访问 SSH 的域名
SSH_PORT SSH 端口号,如果不为 22 的话可以在此修改
SSH_LISTEN_HOST 内置 SSH 服务器监听的地址
SSH_LISTEN_PORT 内置 SSH 服务器监听的端口
SSH_ROOT_PATH SSH 根目录,一般为 ~/.ssh,但必须填写为 /home/git/.ssh
REWRITE_AUTHORIZED_KEYS_AT_START 激活该选项以在应用启动时自动重写 authorized_keys 文件,该选项在使用内置 SSH 服务器时将会被自动禁用
SSH_KEY_TEST_PATH 用于测试 SSH 公钥的临时目录
SSH_KEYGEN_PATH ssh-keygen 程序的路径,默认为 ssh-keygen 即通过系统路径查找
MINIMUM_KEY_SIZE_CHECK 指定不同类型的公钥的最小密钥大小
OFFLINE_MODE 激活该选项来禁止从 CDN 获取静态资源,同时 Gravatar 服务也将被自动禁用
DISABLE_ROUTER_LOG 激活该选项来禁止打印路由日志
CERT_FILE HTTPS 授权文件路径
KEY_FILE HTTPS 的密钥文件路径
STATIC_ROOT_PATH 模板文件和静态文件的上级目录,默认为应用二进制所在的位置
APP_DATA_PATH 应用内部数据的存放目录
ENABLE_GZIP 激活该选项来启用应用级别 GZIP 支持
LANDING_PAGE 未登录用户的默认首页,可以是 homeexplore(探索页)

仓库 (repository)

名称 描述
ROOT 用户仓库存储根目录,必须为绝对路径,默认为 ~/<user name>/gogs-repositories
SCRIPT_TYPE 系统脚本类型,一般情况下均为 bash,但有些用户反应只能使用 sh
ANSI_CHARSET 当遇到无法识别的字符集时使用的默认字符集
FORCE_PRIVATE 强制要求所有新建的仓库都是私有的
MAX_CREATION_LIMIT 全局默认的每个用户可创建创建仓库上限,-1 表示无限制
PREFERRED_LICENSES 建议用户首选的授权类型
DISABLE_HTTP_GIT 激活该选项来禁止用户通过 HTTP 对 Git 仓库进行交互操作,即用户只能通过 SSH 操作
ENABLE_LOCAL_PATH_MIGRATION 激活该选项来启用本地路径迁移仓库功能。启动后默认只有管理员可以使用,普通用户必须经由管理员授权

仓库 - 编辑器 (repository.editor)

名称 描述
LINE_WRAP_EXTENSIONS 需要显示为行包装的文件名后缀,通过逗号分隔。如果是无后缀名的文件,则单独放置一个逗号,例如:.txt,

仓库 - 文件上传 (repository.upload)

名称 描述
ENABLED 激活该选项来启用仓库文件上传功能
TEMP_PATH 文件上传的临时存放目录
ALLOWED_TYPES 允许上传的文件类型(例如:”image/jpeg|image/png”),留空表示允许上传任意类型的文件
FILE_MAX_SIZE 单个上传的文件的最大体积,以 MB 为单位
MAX_FILES 单次同时上传的最多文件个数

版本发布 - 附件 (release.attachment)

名称 描述
ENABLED 激活该选项来启用版本发布附件功能
PATH 存放附件的路径
ALLOWED_TYPES 允许上传的 MIME 类型,例如 “image/jpeg|image/png”,使用 */* 允许所有类型的文件
MAX_SIZE 最大允许上传的附件体积,单位为 MB,例如 32
MAX_FILES 最大允许一次性上传的附件个数,例如 10

Markdown (markdown)

名称 描述
ENABLE_HARD_LINE_BREAK 指示是否启用硬性换行扩展
CUSTOM_URL_SCHEMES 允许被解析为链接的自定义 URL 方案,例如 git(用于 git://)和magnet(用于 magnet://
FILE_EXTENSIONS 需要被渲染为 Markdown 格式的文件名后缀,通过逗号分隔。如果是无后缀名的文件,则单独放置一个逗号,例如:.markdown,

Smartypants (smartypants)

名称 描述
ENABLED 指示是否启用 Smartypants 扩展

HTTP (http)

名称 描述
ACCESS_CONTROL_ALLOW_ORIGIN 头信息 Access-Control-Allow-Origin 的自定义值,默认为空,即不响应此头信息

数据库 (database)

名称 描述
DB_TYPE 数据库类型,可以是 mysqlpostgresmssqlsqlite3
HOST 数据库主机地址与端口
NAME 数据库名称
USER 数据库用户名
PASSWD 数据库用户密码
SSL_MODE 仅限 PostgreSQL 使用
PATH 仅限 SQLite3 使用,数据库文件路径

应用管理 (admin)

名称 描述
DISABLE_REGULAR_ORG_CREATION 激活该选项来禁止普通用户(非管理员)创建组织

安全 (security)

名称 描述
INSTALL_LOCK 用于指示是否允许访问安装页面(该页面可以设置管理员帐号,因此该选项非常重要)
SECRET_KEY 全局的加密密钥,务必修改该值以确保您的服务器安全(会在每次安装时自动生成随机字符串)
LOGIN_REMEMBER_DAYS 记住登录的天数
COOKIE_USERNAME 记录用户名的 Cookie 名称
COOKIE_REMEMBER_NAME 记录用户自动登录信息的 Cookie 名称
REVERSE_PROXY_AUTHENTICATION_USER 反向代理认证用户的 Header 字段名

服务 (service)

名称 描述
ACTIVE_CODE_LIVE_MINUTES 激活码的有效期,单位为分钟
RESET_PASSWD_CODE_LIVE_MINUTES 重置密码的有效期,单位为分钟
REGISTER_EMAIL_CONFIRM 激活该选项来要求注册用户必须验证邮箱,要求已启用 Mailer
DISABLE_REGISTRATION 激活该选项来禁止用户注册功能,只能由管理员创建帐号
SHOW_REGISTRATION_BUTTON 用于指示是否显示注册按钮
REQUIRE_SIGNIN_VIEW 激活该选项来要求用户必须登录才能浏览任何页面
ENABLE_CACHE_AVATAR 激活该选项来缓存 Gravatar 的头像
ENABLE_NOTIFY_MAIL 激活该选项来发送通知邮件给关注者,例如创建 issue 时,要求已启用 Mailer
ENABLE_REVERSE_PROXY_AUTHENTICATION 激活该选项来开启反向代理用户认证,请从 #165 了解更多信息
ENABLE_REVERSE_PROXY_AUTO_REGISTRATION 激活该选项来开启反向代理用户认证的自动注册功能
DISABLE_MINIMUM_KEY_SIZE_CHECK 激活该选项来禁止检查响应类型的密钥最小长度
ENABLE_CAPTCHA 激活该选项以在用户注册时要求输入验证码

Web 钩子 (webhook)

名称 描述
TYPES 启动的 Web 钩子类型,可以是 gogsslackdiscord
DELIVER_TIMEOUT 发送通知的超时时间,以秒为单位
SKIP_TLS_VERIFY 指示是否允许向具有非信任证书的地址发送通知
PAGING_NUM Web 钩子历史页面每页显示记录条数

邮件 (mailer)

名称 描述
ENABLED 启用该选项以激活邮件服务
SUBJECT_PREFIX 邮件标题的前缀
HOST SMTP 主机地址与端口
DISABLE_HELO 禁用 HELO 操作
HELO_HOSTNAME HELO 操作的自定义主机名
SKIP_VERIFY 不验证自签发证书的有效性
FROM 邮箱的来自地址,遵循 RFC 5322规范,可以是一个单纯的邮箱地址或者 "名字" <email@example.com> 的形式
USER 邮箱用户名
PASSWD 邮箱密码
USE_PLAIN_TEXT 使用 text/plain 作为邮件内容格式

备注:Gogs 仅支持使用 STARTTLS 的 SMTP 协议

缓存 (cache)

名称 描述
ADAPTER 缓存引擎适配器,可以为 momeryredismemcache。如果您使用 redismemcache,请确保使用 -tags 选项重新构建所有依赖,例如:go build -tags='redis'
INTERVAL 仅限内存缓存使用,GC 周期,单位为秒
HOST 仅限 redis 和 memcache 使用,主机地址和端口号
- Redis:network=tcp,addr=127.0.0.1:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
- Memache:127.0.0.1:9090;127.0.0.1:9091

会话 (session)

名称 描述
PROVIDER Session 引擎提供者,可以是 memoryfileredismysql
PROVIDER_CONFIG 如果提供者为 file,则为文件根目录;如果为其它提供者,则为主机地址和端口号
COOKIE_SECURE 激活该选项以要求所有 session 操作均通过 HTTPS
GC_INTERVAL_TIME GC 周期,单位为秒

图片 (picture)

名称 描述
AVATAR_UPLOAD_PATH 存放用户上传头像的目录
GRAVATAR_SOURCE 可以是 gravatarduoshuo 或任何 URL,例如:http://cn.gravatar.com/avatar/
DISABLE_GRAVATAR 激活该选项来仅使用本地头像
ENABLE_FEDERATED_AVATAR 激活该选项来启用 Federated 头像服务(http://www.libravatar.org),当 Gravatar 被禁用时此选项无法生效

附件 (attachment)

名称 描述
ENABLED 激活该选项以允许用户上传附件
PATH 存放附件的路径
ALLOWED_TYPES 允许上传的 MIME 类型,例如 “image/jpeg|image/png”,使用 */* 允许所有类型的文件
MAX_SIZE 最大允许上传的附件体积,单位为 MB,例如 4
MAX_FILES 最大允许一次性上传的附件个数,例如 5

时间 (time)

名称 描述
FORMAT 指定日期的输出格式,默认为 RFC1123,其它可选的格式为 ANSIC、UnixDate、RubyDate、RFC822、RFC822Z、RFC850、RFC1123、RFC1123Z、RFC3339、RFC3339Nano、Kitchen、Stamp、StampMilli、StampMicro 和 StampNano。访问 http://golang.org/pkg/time/#pkg-constants 查看详情

日志 (log)

名称 描述
ROOT_PATH 日志文件的根目录
MODE 日志记录模式,默认为 console。如果想要开启多模式,请使用逗号分割,例如:"console, file"
LEVEL 基本日志级别,默认为 Trace

日志 - 控制台 (log.console)

名称 描述
LEVEL 控制台日志级别,留空则继承父值

日志 - 文件 (log.file)

名称 描述
LEVEL 控制台日志级别,留空则继承父值
LOG_ROTATE 激活该选项以启用日志文件自转
DAILY_ROTATE 激活该选项以进行日常自转
MAX_SIZE_SHIFT 自转需要达到的最大文件体积,使用位左移,默认为 28 即 1 << 28,表示 256MB
MAX_LINES 自转需要达到的最大文件行数,默认为 1000000
MAX_DAYS 保留自转文件的最长期限,默认为 7 天后删除

日志 - Slack (log.slack)

名称 描述
LEVEL 控制台日志级别,留空则继承父值
URL Slack Web 钩子 URL

Cron (cron)

名称 描述
ENABLED 激活该选项以允许周期性运行 Cron 任务
RUN_AT_START 激活该选项以允许在启动时执行 Cron 任务

Cron - 更新镜像 (cron.update_mirrors)

名称 描述
SCHEDULE 定时更新仓库镜像的 Cron 语法,例如:@every 1h

Cron - 仓库健康检查 (cron.repo_health_check)

名称 描述
SCHEDULE 定时进行仓库健康检查的 Cron 语法,例如:@every 24h
TIMEOUT 仓库健康检查超时的定义语法,例如:60s
ARGS git fsck 命令的参数,例如:--unreachable --tags

Cron - 仓库统计检查 (cron.check_repo_stats)

名称 描述
RUN_AT_START 激活该选项以在启动时执行仓库统计检查
SCHEDULE 定时进行仓库统计检查的 Cron 语法,例如:@every 24h

Cron - 仓库归档清理 (cron.repo_archive_cleanup)

名称 描述
RUN_AT_START 激活该选项以在启动时执行仓库归档清理
SCHEDULE 定时进行仓库归档清理的 Cron 语法,例如:@every 24h
OLDER_THAN 仓库归档的文件有效期,过期的归档将被清理,例如:24h

Git (git)

名称 描述
DISABLE_DIFF_HIGHLIGHT 激活该选项以禁用行内差异高亮
MAX_GIT_DIFF_LINES 差异对比页面单个文件显示的最大行数
MAX_GIT_DIFF_LINE_CHARACTERS 差异对比页面单行显示的最大字符数
MAX_GIT_DIFF_FILES 差异对比页面文件显示的最多个数
GC_ARGS git gc 命令的参数,例如:--aggressive --auto

Git - 超时 (git.timeout)

名称 描述
MIGRATE 仓库迁移操作超时,默认为 600
MIRROR 仓库镜像同步操作超时,默认为 300
CLONE 仓库克隆操作超时,默认为 300
PULL 仓库拉取操作超时,默认为 300
GC 仓库垃圾回收操作超时,默认为 60

UI (ui)

名称 描述
EXPLORE_PAGING_NUM 探索页面每页显示仓库的数量
ISSUE_PAGING_NUM 每页显示工单(Issue)的数量(应用到所有以列表形式显示工单的页面)
FEED_MAX_COMMIT_NUM 一条最新活动中显示代码提交(Commit)的最大数量
THEME_COLOR_META_TAG 被用于 Android >= 5.0 版本 “theme-color” 标记的值,无效的值将被忽略并使用默认值(查看详情)
MAX_DISPLAY_FILE_SIZE 显示到页面的最大文件体积(Byte)

UI - Admin (ui.admin)

名称 描述
USER_PAGING_NUM 用户管理页面每页显示记录条数
REPO_PAGING_NUM 仓库管理页面每页显示记录条数
NOTICE_PAGING_NUM 系统提示管理页面每页显示记录条数
ORG_PAGING_NUM 组织管理页面每页显示记录条数

其他 (other)

名称 描述
SHOW_FOOTER_BRANDING 激活该选项以在页脚显示 Gogs 推广信息
SHOW_FOOTER_VERSION 激活该选项以在页脚显示 Gogs 版本信息
SHOW_FOOTER_TEMPLATE_LOAD_TIME 激活该选项以在页脚显示 Gogs 模板加载时间

PS:以下文件为本人的app.ini,可提供参考

APP_NAME = Gogs
RUN_USER = git
RUN_MODE = prod [database]
DB_TYPE = mysql
HOST = mysql:
NAME = gogs
USER = gogs
PASSWD = gogs
SSL_MODE = disable
PATH = data/gogs.db [repository]
ROOT = /data/git/gogs-repositories [server]
DOMAIN = 193.168.1.126
HTTP_PORT =
ROOT_URL = http://193.168.1.126:3000/
DISABLE_SSH = false
SSH_PORT =
START_SSH_SERVER = false
OFFLINE_MODE = false
SSH_ROOT_PATH = /home/git/.ssh [mailer]
ENABLED = true
HOST = smtp.exmail.qq.com:
FROM = codemanagement@***dom-bj.com
USER = codemanagement@***dom-bj.com
PASSWD = **1L**** [service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = 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 = iJvZe19kYcSbxYd [repository.upload]
ALLOWED_TYPES =
FILE_MAX_SIZE =
MAX_FILES = [release.attachment]
MAX_SIZE =
MAX_FILES =

docker配置搭建gogs的更多相关文章

  1. 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器

    一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gog ...

  2. Docker系列——利用gogs搭建属于自己的git服务

    gogs简介 Gogs的目标是打造一个最简单.最快速和最轻松的方式搭建自助Git服务.使用Go语言开发使得Gogs能够通过独立的二进制分发,并且支持Go语言支持的所有平台,包括 Linux.Mac O ...

  3. Docker搭建Gogs代码仓库——代码自动化运维部署平台(一)

    一.准备工作 1.Gogs 概念: Gogs 是一款极易搭建的自助 Git 服务. 目的: Gogs 的目标是打造一个最简单.最快速和最轻松的方式搭建自助 Git 服务.使用 Go 语言开发使得 Go ...

  4. Docker Mysql主从同步配置搭建

    Docker Mysql主从同步配置搭建 建立目录 在虚拟机中建立目录,例如路径/home/mysql/master/data,目录结构如下: Linux中 新建文件夹命令:mkdir 文件夹名 返回 ...

  5. 【架构】docker环境搭建mysql主从

    序 本文主要研究怎么在docker上搭建mysql的主从.因为在单机搭建mysql多实例然后再配主从,感觉太痛苦了,环境各有不同,配置各不大相 同,从网上找搭建方法,试了半天也没成功,最后也没耐心调试 ...

  6. Docker Machine搭建并加入节点

    对于集群服务器来讲,要在每台机器上手动安装Docker是一件及其痛苦的事情,还好有Docker Machine这一工具,Docker三剑客中的一角. 一.Docker Machine介绍 这个工具已经 ...

  7. redis单点、redis主从、redis哨兵sentinel,redis集群cluster配置搭建与使用

    目录 redis单点.redis主从.redis哨兵 sentinel,redis集群cluster配置搭建与使用 1 .redis 安装及配置 1.1 redis 单点 1.1.2 在命令窗口操作r ...

  8. centos7系统下 docker 环境搭建

    运行环境: VMware Workstation Pro 在虚拟机中安装centos7系统, 选择最小安装, 网络连接方式选择的桥接(与宿主机在同一IP段)centos7一定要安装64位, docke ...

  9. Istio入门实战与架构原理——使用Docker Compose搭建Service Mesh

    本文将介绍如何使用Docker Compose搭建Istio.Istio号称支持多种平台(不仅仅Kubernetes).然而,官网上非基于Kubernetes的教程仿佛不是亲儿子,写得非常随便,不仅缺 ...

随机推荐

  1. 70. Climbing Stairs QuestionEditorial Solution

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  2. CSS颜色表示的几种方式

    在CSS中颜色有很多表示方式,今天列出一些常见的颜色表示方式及它们的用法. ①color:blue;  第一种,调用颜色属性,将颜色的英文输入在冒号后,以分号结束. 这种方法直接了当,但是能表示的颜色 ...

  3. java设计模式3——建造者模式

    java设计模式3--建造者模式 1.建造者模式介绍: 建造者模式属于创建型模式,他提供了一种创建对象得最佳方式 定义: 将一个复杂对象的构建和与它的表示分离,使得同样的构建过程可以创建不同的表示 主 ...

  4. pycham设置头文件内容

    pycharm软件 设置头文件方法 File->settings->Editor->File and Code Templates->Python Script  #!/usr ...

  5. WeChall_ Training: Stegano I (Training, Stegano)

    This is the most basic image stegano I can think of. 解题: 一张小图片,文本方式打开.

  6. Codeforces 1011C Fly(二分+模拟)

    题意: 是有n个星球,1代表地球,然后输入一个m表示火箭的重量,然后输入了两组n个数,第一组表示在每个星球起飞时消耗一吨燃料的质量数,a[i]就表示每a[i]吨就要消耗1吨燃料,第二组就表示在每个星球 ...

  7. java 利用POI 读取Execel数据的真实行数

    java 利用poi 读execel文件的操作,读取总的数据行数一般是通过调用 sheet.getLastRowNum() ;可是这样有时候会出现一些问题,例如,当其中一行的数据的确都为空,可是其原本 ...

  8. 2、HotSpot虚拟机对象探秘

    基于使用优先的原则,以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配.布局和访问的全过程. 1.对象的创建 划分可用空间 在语言层面上,创 ...

  9. windows、linux 下启用mysql日志功能

    在默认情况下,mysql安装是没有启用日志管理功能的,这为后续的维护带来很多不便的地方. 查看是否启用了日志mysql>show variables like 'log_bin'; 怎样知道当前 ...

  10. php 安装 pdo_mysql

    首先要安装 mysql客户端 然后再安装php mysql 扩展 1.安装 mysql客户端 和 mysql开发包 使用yum安装mysql client 到mysql官网下载 yum文件  http ...