先安装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;
docker pull gogs/gogs
如果你还没安装Docker,请先参考安装: CentOS 7如何安装Docker Engine?
mkdir -p /var/gogs
docker run --name=gogs -p 10022:22 -p 10880:3000 -v /var/gogs:/data gogs/gogs
其中端口10022和10880可以自定义,前一个是基于ssh访问,后一个是基于http访问。
docker start gogs
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 protected]
上面示例假设你的Gogs是以git账号运行的,并且安装在/home/git/gogs目录, 它将创建一个用户名为tmpuser和密码为tmppassword的新用户。
以Docker方式运行的话, 上述命令应该在你的Docker容器里完成,进入到容器:
docker exec -it gogs bash