由于工作需要,要求在服务器上搭建Gogs,虽说整个过程不算困难,但是也以此记录一下整个完成过程,后续有需要时方便查看。
1.安装docker
-更新apt-get源
sudo apt-get update
-安装包允许apt-get通过htts使用仓库
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
-添加docker官方GPG Key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-设置docker稳定版本仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-设置完成后,重新更新apt源
sudo apt-get update
--此时,可能会出现报错:
--如若出现上图错误,修改 /etc/apt/sources.list 文件,加入以下内容:
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
-由于上述出错,导致会在 /etc/apt/sources.list.d/ 生成一个一个错误的文件,找到该文件,并删除它
-删除完成后,再次执行apt-get源更新
sudo apt-get update
-安装最新版本的docker-ce(ce为免费社区版)
sudo apt-get install docker-ce
-安装完成后,可以键入下面命令来查看启动状态
sudo systemctl status docker
效果类似下图,则说明安装成功
-配置阿里云docker镜像加速
mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://j3qp5gr4.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
-运行hello world镜像
sudo docker container run hello-world
出现Hello form Docker!字样则说明成功
2.安装部署 Gogs
-首先确定Gogs数据库使用mysql,所以需要拉取一个mysql的镜像
sudo docker pull mysql/mysql-server:latest
-启动mysql容器
sudo docker run -d --restart always -e MYSQL_ROOT_PASSWORD=123456 --name mysql -v $PWD/mysql/my.cnf:/etc/mysql/my.cnf -v $PWD/mysql/data:/var/lib/mysql -p 4406:3306 mysql/mysql-server:latest
该命令将宿主机4406端口转发到容器的3306端口,并建立数据库账号root、密码为123456
-进入mysql镜像创建名为gogs的数据库
sudo docker exec -it 1c41202db329 /bin/sh (加粗部分为容器ID,可能会有差异,填写自己的)
mysql -u root -p
CREATE DATABASE gogs;
show databases;
--给外部授权访问
use mysql;
update user set host='%' where user ='root';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
-拉取gogs镜像
sudo docker pull gogs/gogs
-运行gogs镜像
sudo docker run -d --name=mygogs -p 10022:22 -p 8888:3000 -v /var/gogs:/data gogs/gogs
-浏览器访问:ip地址:8888会出现gogs的安装页面
数据库选择mysql,主机输入:内网ip:4406(上述步骤将宿主机4406端口转发至mysql镜像的3306端口了)
账户root 密码123456(上述步骤中设置值)数据库名称 gogs
域名、应用URL均填写为:ip地址:8888
-访问:ip地址:8888即可访问