【转载】原文地址:https://www.jianshu.com/p/2a7acb07b352

请先参考docker安装mysql, 进行mysql的安装: http://www.jianshu.com/p/5f5e419b5de8

(以上安装完MySQL后,仍需设置防火墙,具体操作见文后补充。)

一. 在宿主机创建目录

无需指定特殊权限

mkdir /opt/docker/gogs/

二. 运行容器

在此之前,先在mysql中创建gogs数据库. [注意,一定要先将mysql数据库的默认字符编码设置为utf8, 否则, gogs在自动创建表时, 会出现问题]

docker run -d -p 10022:22 -p 10080:3000 \
--name=gogs --net=backend \
-v /opt/docker/gogs/:/data \
gogs/gogs

参数说明:
-d: 后台方式运行容器
-p: 端口映射, 将容器的22端口映射到宿主机的10022端口, 将容器的3000端口映射到宿主机的10080端口
--name: 指定容器名称
--net: 将容器加入backend网络, 目的是为了能够连接backend网络中的mysql数据库
-v: 数据卷挂载, 用于将容器和数据分离

三. 打开浏览器,进行gogs配置

http://宿主机ip:10080
如: http://localhost:10080

01.png

02.png

注意两个配置:

  1. 数据库主机 值应该是: mysql57:3306 这个是docker中连接另一个容器中服务的方式(上一篇文章在启动mysql容器时,将mysql加入backend网络的目的就在于此).
  2. 应用URL, 这个url应该是宿主机地址:10080

点击确认, 之后会转到一个无法连接的页面, 是因为 刚才的应用URL指定的端口是3000, 但访问宿主机的3000并无意义, 必须访问10080才行, 为什么是10080, 因为容器启动时, 建立了-p 10080:3000的映射.

下一步我们将通过修改配置文件的方式修正这个问题

四.修改配置文件

配置文件路径: /opt/docker/gogs/gogs/conf/app.ini

APP_NAME = Gogs
RUN_USER = git
RUN_MODE = prod[database]
DB_TYPE  = mysql
HOST     = mysql57:3306    ## 注意这里, 是docker中连接通网络,其它容器服务的方式
NAME     = gogs
USER     = root
PASSWD   = root
SSL_MODE = disable
PATH     = data/gogs.db[repository]
ROOT = /data/git/gogs-repositories[server]
DOMAIN           = localhost
HTTP_PORT        = 3000
ROOT_URL         = http://localhost:10080/   ## 这个就是图形界面的应用URL的值
DISABLE_SSH      = false
SSH_PORT         = 10022
START_SSH_SERVER = false
OFFLINE_MODE     = false[mailer]
ENABLED = false[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 = true[session]
PROVIDER = file[log]
MODE      = file
LEVEL     = Info
ROOT_PATH = /app/gogs/log[security]
INSTALL_LOCK = true
SECRET_KEY   = nV8DDKEN2IExVjr

修改完之后, 保存, 重启gogs容器,再访问
http://localhost:10080
即可看到登录, 界面了, 点击注册, 注册成功后的第一个用户, 会成为超管用户.

五. 测试

  1. 使用gogs的图形界面,创建一个项目. 然后在本地, pull下来, 修改之后再push上去. 然后看界面中是否有你提交的结果
  2. 使用如下命令, 停止并删除容器
    docker stop gogs
    docker rm gogs
  3. 再次启动容器
docker run -d -p 10022:22 -p 10080:3000 \
--name=gogs --net=backend \
-v /opt/docker/gogs/:/data \
gogs/gogs
  1. 访问 http://localhost:10080, 登录查看之前创建是否依然存在, 如果存在, 则你已成功完成gogs部署了

对原文的补充:

  • 用docker安装完mysql后,需要在宿主机设置防火墙开放MySQL端口(一般是3306),否则gogs访问MySQL会报无法连接。
步骤:1.查看区域信息 firewall-cmd --get-active-zones 2.开放指定的端口,此处开发你需要连接的ethstats端口即可(临时开放) sudo firewall-cmd --zone=public --add-port=3306/tcp 3.开放指定的端口,此处开发你需要连接的ethstats端口即可(永久开放) sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent 4.保存服务 sudo firewall-cmd --reload
  • mysql版本选择5.7即可,8.0有几率不成功;
  • mysql编码选择utf8,排序选择utf8_genegal_ci(gogs官方要求),其他编码和排序不一定能成功(后来我自己试过utf8mb4编码和utf8mb4_genegal_ci排序也没问题);
  • 如果出现【仓库根目录设置不正确的问题】这个问题,在宿主机上执行  sudo chmod -R 777 /opt/docker/gogs,给docker容器以权限写入内容。(这一步要在出现问题后才执行,否则新生成的文件夹默认是不能写入的)

docker安装gogs相关推荐

  1. gogs mysql 报错_linux上Docker安装gogs私服亲测(详解)

    一.前言 有网友问我为什么要使用私服,可能大部分人都不是太懂,网上那么多存储仓库而且好用方便,但是你想过没有如果企业中的项目,放在人家的仓库上这个安全性不是太好,所以说一般企业都会有自己的私服.本章教 ...

  2. Docker安装Gogs搭建git服务器

    gihub地址:https://github.com/gogs/gogs gogs官网:https://gogs.io/ gihub官方docker安装gogs方法:https://github.co ...

  3. Docker安装gogs git仓库

    在地址栏输入http://ip:3000 会进入首次运行安装程序页面,我们 可以选择一种数据库作为gogs数据的存储,最简单的是选择SQLite3.如果对于规模较大 的公司,可以选择MySQL

  4. docker 安装portainer、gogs、redis、mongodb、es、rabbitmq、mysql、jenkins、harbor

    2019独角兽企业重金招聘Python工程师标准>>> 1.准备三台虚拟机ip如下 编号 Ip 1 192.168.100.101 2 192.168.100.102 3 192.1 ...

  5. ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成

    没有采用gitlab,因为gitlab比较吃配置.也比较重,用不到那么多功能.采用go语言开发的gogs来代替. 免费HTTPS证书 安装Gogs (一个gitserver,类似于gitlab) 安装 ...

  6. docker安装ansible awx

    awx简介 Ansible AWX是商业版Ansible Tower 的开源版本,AWX提供了一个基于web的用户界面.REST API和构建在Ansible之上的任务引擎. 借助Ansible AW ...

  7. CentOS 7中Docker安装详细步骤 ( 资源 )

    2019独角兽企业重金招聘Python工程师标准>>> 注意:centos 6.9上默认是安装docker早期的1.7.*版本,后续docker 分CE和EE的版本,只能安装在cen ...

  8. Docker安装Apache与运行简单的web服务——httpd helloworld

    Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...

  9. etcd 笔记(02)— etcd 安装(apt 或 yum 安装 、二进制包安装、Docker 安装 etcd、etcd 前端工具etcdkeeper)

    1. 使用 apt 或 yum 安装 etcd 命令如下: sudo apt-get install etcd 或者 sudo yum install etcd 这样安装的缺点是:安装的 etcd 版 ...

最新文章

  1. python 连接mysql数据库
  2. 暑假集训(3)第二弹 -----Jungle Roads(Hdu1301)
  3. 【数字逻辑设计】推气泡
  4. 前端基础-html-段落标签
  5. html文件很大,webpack打包之后的文件过大如何解决
  6. [转][ASP.net]后台页面刷新
  7. Struts2 Error filterStart异常的解决方法总结
  8. [WTL] 使用CImageList
  9. 第十六章 python Pygame的使用
  10. OfficeXP的激活码保存位置
  11. 电大本科计算机应用基础模块6,国家开放大学计算机应用基础模块3形考答案.xls...
  12. 2018深信服java笔试题,深信服2018秋招编程题
  13. SSL-ZYC 游戏
  14. Win10亮度调节无效
  15. 如何选择企业级数据存储DAS、NAS和SAN
  16. SVN提交,报“remains in conflict”错误
  17. 多邻国-英语学习笔记
  18. Windows无法安装驱动原因总结
  19. untu复制粘贴快捷键
  20. 进制GB和GiB的区别

热门文章

  1. 常见的量化交易策略简介
  2. 用远程桌面登陆服务器 自动输入字母c
  3. django中的queryset合并
  4. 程序猿的牢笼——技术本身
  5. 在阿里云上安装mysql后,无法远程登陆
  6. cesium 开发记录报错:DeveloperError: Appearance/Geometry mismatch.
  7. JavaScript 中的无穷数(Infinity)
  8. 模型制作:木牌(3)
  9. 财务数字化转型如何进行?
  10. HTML5粉色气球飘过动画js特效