安装 Gogs + Docker常用命令

介绍

本节主要写一下Jenkins的配置与自动构建过程,包括使用Gogs作为git服务器,配置自动构建等。
本节需要配合上一节的内容使用,即 安装 Docker + Jenkins 的服务器一台

搭建环境

  • 服务器3 :TencentCloud 北京 RAM4G 2C 40GSSD(新用户机器)998RMB/3Year
  • 操作系统 :CentOS7.5
  • 部署环境 :LNMP1.6 (我是军哥铁粉)

服务器1:搭建Jenkins中转服务器,做代码自动构建使用
服务器2:生产环境服务器,实则测试服务器,部署代码使用
服务器3:Gogs服务器,Git版本库服务器,做代码版本控制使用

配置无需对标,都是低配置小鸡,唯一一个腾讯云 2C4G 的机器是我之前放其他业务的机器,由于git经常需要使用因此搭建在国内套CloudFlare使用,实则Gogs只需要 2C1G 机器即可,官方推荐配置是2C512M,是一个不吃内存的程序,目前腾讯云的 1C2G 只需要99/年,属于大众所承受的起的价格,由于我不是专职AFFMAN,因此不贴链接

CentOS7 安装 Docker

1
yum -y install docker
1.png
1.png
1
2
start docker
enable docker
2.png
2.png

查看版本号,查看是否安装成功!

1
docker -v

3.png
3.png

Docker 常用命令

记录一下安装时可能会出现的问题,以及常用的Docker命令

查看当前运行的容器

1
docker ps

查看所有容器

1
docker ps -a

停止容器

1
2
docker stop [DOCKER NAME] 
# 例如:docker stop gogs

删除容器(必须在Stop之后才可以删除)

1
2
docker rm [DOCKER NAME] 
# 例如:docker rm gogs

进入容器

1
2
3
4
docker attach [DOCKER NAME] 
# 例如: docker attach gogs
docker exec -it [DOCKER IMAGE ID] /bin/bash
# 例如: docker exec -it ef5cb0692b57 /bin/bash

退出容器

1
exit

查看容器变动日志

1
2
docker diff [DOCKER NAME]
# 例如:docker diff gogs

查看容器或者镜像详细信息

1
2
sudo docker inspect [IMAGE NAME]:0.1 
# 例如: sudo docker inspect gogs

向容器内部发送指令

1
2
docker exec [DOCKER NAME] [COMMAND]
# 例如 docker exec gogs ls

安装 Gogs

安装

下载镜像 Gogs

1
docker pull gogs/gogs

4.png
4.png

创建目录

1
2
mkdir -p /home/Gogs
cd /home/Gogs

5.png
5.png

开启Docker

1
2
3
4
# 直接启动
docker run --name=gogs -p 10022:22 -p 10080:3000 -v /home/Gogs:/data gogs/gogs
# 后台启动
docker run --name=gogs -d -p 10022:22 -p 10080:3000 -v /home/Gogs:/data gogs/gogs

配置

正常启动后直接打开 http://ip:10080即可

如图:

6.png
6.png

接下来按照提示配置即可,我们这里使用SQLite3

应用配置需要注意一下

  • 域名填写你的服务器公网IP
  • SSH端口号填写 映射的端口号 10022
  • HTTP端口号填写 3000
  • 应用URL填写 ip + 映射的端口号 10080 访问
    7.png
    7.png

配置完成后如果设置好管理员账户的会自动登录进去,如果没有设置的可以自行注册。

注意:数据库中第一个用户就是管理员账户

8.png
8.png

Tips:Gogs的配置文件存放在 Docker中的 /data/gogs/conf/app.ini 如果想要更改可以

反向代理绑定域名

公司代码架构 - Docker + Jenkins + Gogs + Portainer(一)一样,在应用配置阶段修改或者修改配置文件都可以

结语

Gogs 是一个轻量级的 Git服务器,适用于一些小公司小团队使用,大公司使用Gitlab的情况可能更多一些,但是东西实际都是差不多的,为了占用资源更小一些,我这里还是选用了比较轻量级的Gogs