# CentOS 7如何用Docker安装开源git仓库管理软件Gogs? ## 安装MySql并配置好账号 先安装mariadb: ``` docker pull mariadb/server docker run -d --name maria -p 3306:3306 -eMARIADB_ROOT_PASSWORD=mypassword mariadb/server ``` 再进入容器maria,创建gogs专用数据库: ``` docker exec -it maria bash mysql -uroot -pmypassword mysql> create database gogs default charset=utf8; mysql> grant all on gogs.* to 'gogs' identified by 'dbpassword'; mysql> flush privileges; ``` ## 下载Gogs镜像 ``` docker pull gogs/gogs ``` 如果你还没安装Docker,请先参考安装: [CentOS 7如何安装Docker Engine?](./CentOS_7如何安装Docker_Engine.md) ## 创建本地Gogs目录 ``` mkdir -p /var/gogs ``` ## 创建Gogs容器 ``` docker run --name=gogs -p 10022:22 -p 10880:3000 -v /var/gogs:/data gogs/gogs ``` 其中端口10022和10880可以自定义,前一个是基于ssh访问,后一个是基于http访问。 ## 启动Gogs容器 ``` docker start gogs ``` ## 配置Nginx以便外网访问 Nginx参考配置: ``` server { listen 80; server_name 你的域名; location / { proxy_pass http://localhost:10880; } } ``` ## 创建管理员账号 Gogs的规则是,第一个创建的账号就是管理员,Email不是必须的。 按上面步骤配置好Nginx之后,打开你配置的域名访问Gogs, 然后点击注册按钮并完成管理员账号创建。 第一次访问,会看到一个安装网页, 在安装网页必须填好正确的MySql数据库地址、账号和密码: ``` 数据库地址:172.17.0.1:3306 数据库账号:gogs 数据库密码:dbpassword ``` 其中数据库ip地址需要用```ifconfig```在服务器查看Docker虚拟网络的本机ip。 以后如果需要审核新的账号, 管理员账号登陆后进入:Admin > Users 就可以审核了。 ## 命令行创建账号 除了上述网页的方式管理账号,还可以在服务器里用命令来添加账号: ``` su git cd /home/git/gogs ./gogs admin create-user --name tmpuser --password tmppassword --admin --email email@example.com ``` 上面示例假设你的Gogs是以git账号运行的,并且安装在/home/git/gogs目录, 它将创建一个用户名为**tmpuser**和密码为**tmppassword**的新用户。 以Docker方式运行的话, 上述命令应该在你的Docker容器里完成,进入到容器: ``` docker exec -it gogs bash ``` ## 参考 * https://hub.docker.com/r/gogs/gogs * https://gogs.io/docs * https://gogs.io/docs/intro/faqs