作者:杨某人
前言
最近又开始想学习编程知识,于是就动手搭建个类似github的网站,方便在线管理代码,虽然git代码管理在本地就可以,但为了榨干服务器资源,还是想试试利用Ubunut搭建个类似的github服务,同时可以水篇文章,目前git代码托管类应用自建服务其实选择比较多,比较出名的是gitlab,功能丰富,但其资源占用较大,我选择了gitea,其运行配置低相对低,个人使用功能上感觉也够了。
1、docker安装
安装果断选择docker-compose方式安装,直接在hub.docker.com很容易找到官方镜像,介绍安装界面直接给了官方介绍文档,是中文的安装教程,比较容易理解的。如果你还是不太清楚docker及docker-compose建议看看我之前的内容。
建议采用安装带数据库版本的docker-compose.yml,附上文件供参考,也可以直接看官方教程。
version: “3”
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:latest #标签使用最新版,截至2022年2月21日最新版是1.16.1
container_name: gitea
environment:
– USER_UID=1000
– USER_GID=1000
– DB_TYPE=mysql
– DB_HOST=db:3306
– DB_NAME=gitea
– DB_USER=gitea
– DB_PASSWD=gitea
restart: always
networks:
– gitea
volumes:
– /docker/gitea:/data # 这里可以自定义数据文件映射路径
– /etc/timezone:/etc/timezone:ro
– /etc/localtime:/etc/localtime:ro
ports:
– “3000:3000”
– “222:22”
depends_on:
– db
db:
image: mysql:8
restart: always
environment:
– MYSQL_ROOT_PASSWORD=gitea
– MYSQL_USER=gitea
– MYSQL_PASSWORD=gitea
– MYSQL_DATABASE=gitea
networks:
– gitea
volumes:
– /docker/gitea/mysql:/var/lib/mysql在Ubuntu服务器找个合适位置,将docker-compose.yml文件复制进去(可以用winscp登陆后复制),在命令行找到文件位置,用docker-compose up -d(新版docke-compsoe的命令改成docker compose up -d)命令就能搞定。我复制的位置在/mnt/all/共享/code/gitea,所以我的命令如下
cd /mnt/all/共享/code/gitea
docker compose up -d #旧版2.0以下版本docker-compose的命令还是docker-compose up -d,请灵活掌握如果提示services.server Additional property db is not allowed,请注意可能是docker-compose.yml文件内容格式有问题,应该是server与db层级错了,应该是同级的,也就是前面的空格数量相同。
安装完毕后就可以用浏览器打开服务器IP+端口3000。
直接设置数据库,按照docker-compose.yml文件内数据库的用户名等进行设置,注意数据库主机的设置是db:3306。
其他就按照默认即可,不建议修改(应为是docker容器内的,改了意义不大),最后点击安装。之后重新用浏览器打开服务器IP+端口3000,进行注册和登录即可。
登录后就可以使用了,具体使用就不再介绍了,仓库列表里加号就可以添加代码仓库。
2、git及gitea服务器HTTP方式进行代码推送
2.1、git简介及简单安装
具体git是什么,它是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。git用得最多就是对编程工作的版本控制,尤其是多人使用的时候,可以方面合并不同修改内容,比起word的文档修改回撤,更加方便,能更容易看出修改前后区别,并且可以注释修改内容,有点像word的修订模式(个人理解,不一定准确)。对于小白的我,安装这个主要是为了学习点编程小知识,也是为了进一步学习git。git下载很简单,百度git第一个找win版或适合自己系统的版本即可,在Ubuntu默认是安装了git命令行功能的。一路默认安装,就可以打开git bash命令行界面了。
git是可以在本地使用的,即设置一个用于版本控制的文件夹,里面的编程文件等就可以用git控制版本了。相关教程网上比较多,推荐看看菜鸟教程。那本地能用git,我为什么还要搭建gitea在线服务呢?当然是为了多人协作(其实是为了水文章,学习新知识)、方便在线查看代码。
2.2、git与gitea连接及HTTP代码推送
在gitea创建代码仓库,就可以通过HTTP方式进行代码推送了,docke方式安装由于下采用ssh是在容器内自建,还需要对本机的key映射,端口修改等等比较复杂的操作,就不建议采用ssh方式同步代码了,后面我将再水一篇介绍非docker方式搭建方式,也是为了解决docker方式ssh同步设置复杂的问题。
仓库页面就有HTTP连接代码,在git命令行下找到自己编程代码的目录,然后git add命令添加代码文件,在git commit命令提交暂存区代码到本地仓库后,就可以上传代码到gitea服务了,直接复制粘贴gitea仓库中显示的代码到git命令行界面就可以连接和上传代码了,过程中会弹窗需要用gitea账号密码登录。
总结
本篇文章简单介绍了采用docker方式安装gitea服务的方法,官方教程介绍也比较详细了,同时介绍了git与gitea服务HTTP连接和简单的代码推送。可能有人会觉得既然github或是国内的gitee代码服务已经比较完善了,没必要自己搭建这样gitea服务,这个其实就是不同人有不同的需求,存在就是合理的,如果你也有需求,完全可以尝试一下。我计划再水篇二进制文件直接搭建gitea服务的文章,欢迎继续关注。
后记
欢迎大家查阅前期《将ubuntu设置为NAS》相关文章,可以关注、点赞、打赏和交流评论 。
将ubuntu设置为NAS——1. Transmission-daemon安装
将ubuntu设置为NAS——2. 新增硬盘挂载
将ubuntu设置为NAS——3. 私人网盘nextcloud安装(上)
将ubuntu设置为NAS——3. 私人网盘nextcloud安装(中)
将ubuntu设置为NAS——5. docker与docker-compose的安装
将ubuntu设置为NAS——6. 私人网盘nextcloud安装(下)(docker下安装nextcloud)
将ubuntu设置为NAS——7. 私人网盘nextcloud升级
将ubuntu设置为NAS——8. nextcloud集成onlyoffice在线协同办公软件
将ubuntu设置为NAS——9. 远程命令行及PuTTY、WinScp与手机端Termux使用
将ubuntu设置为NAS——10. 虚拟机KVM及软路由LEDE安装
将ubuntu设置为NAS——11. docker可视化管理工具portainer安装与使用
将ubuntu设置为NAS——12.使用portainer安装为知笔记及为知笔
将ubuntu设置为NAS——13.搭建新型在线协同表格和信息管理工具Seatable
将ubuntu设置为NAS——14.尝试mergerfs合并多个物理硬盘
将ubuntu设置为NAS——15.安装seafile并集成onlyoffice
将ubuntu设置为NAS——16.qBittorrent server安装与卸载
将ubuntu设置为NAS——17.私人在线图书馆搭建
将ubuntu设置为NAS——18.搭建Jellyfin影音服务器(上)
将ubuntu设置为NAS——19.搭建 Jellyfin影音服务器(中)
将ubuntu设置为NAS——20.去中心化同步软件Syncthing同步文件