docker安装gogs

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

一. 在宿主机创建目录

无需指定特殊权限

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安装gogs)