7.1 自动化构建(代码仓库Gitea)

系列 - 自动化构建与持续集成
Gitea
Gitea 是一个轻量级的开源 Git 服务平台,用于托管代码和进行版本控制。它与 Github、Gitlab、Gitee 等商业化平台功能类似,但更加轻量和易于部署。
为什么选择 Gitea
Gitea 相比其他 Git 服务平台的优势在于它非常轻量,启动速度快,占用资源少。对于小型团队或个人开发者来说,Gitea 是一个理想的选择,特别是在资源有限的环境中。

在开始实验前,我们需要清理环境,确保没有旧的容器和镜像影响我们的实验结果。请执行以下步骤:

  1. 删除所有容器
  2. 删除所有已下载的镜像
  3. 清理未使用的数据卷和网络

bash

# 删除所有容器
docker rm -f $(docker ps -aq)

# 删除所有镜像
docker rmi -f $(docker images -q)

# 清理系统
docker system prune --volumes -f

Gitea 官方提供了 Docker 镜像,并且建议使用 docker-compose.yml 部署,官方文档在这里:https://docs.gitea.com/zh-cn/installation/install-with-docker

bash

mkdir /srv/gitea
cd /srv/gitea

在该目录创建 docker-compose.yml 文件内容如下:

yml

networks:
  gitea:

services:
  server:
    image: docker.gitea.com/gitea:1.25.2
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    networks:
      - gitea
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"

bash

docker compose up -d

运行

查看容器状态

数据库设置

在【可选设置】部分,填写管理员账号信息,包括用户名、密码和邮箱

可选设置

完成所有设置后,点击页面底部的【立即安装】按钮

正在安装 安装完成

在完成 Gitea 的部署后,我们来创建一个简单的 Flask 应用并将其推送到 Gitea 仓库中,体验 Git 版本控制的基本流程。

首先,我们需要安装必要的依赖并创建项目目录:

bash

# 安装 Python 和 pip
yum install -y python3 python3-pip

# 安装 Flask 框架
pip3 install flask

# 创建项目目录
mkdir /root/myproject
cd /root/myproject
Flask 简介
Flask 是一个轻量级的 Python Web 框架,非常适合创建简单的 Web 应用。它提供了基本的路由功能和模板渲染,而且易于学习和使用。

bash

vim app.py

文件内容:

python

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return '<p>我是一个网页!</p><img src="http://helloflask.com/totoro.gif">'

在将代码推送到 Gitea 之前,我们先本地运行应用,确保它能正常工作:

bash

# 启动 Flask 应用,允许外部访问
flask run --host=0.0.0.0

你应该能看到类似下面的输出,表示 Flask 服务器已经启动:

Flask运行输出

操作提示
按 Ctrl + C 可以中止 Flask 进程。Flask 默认在 5000 端口运行。

现在,打开浏览器,访问 http://服务器IP:5000,你应该能看到我们的网页:

网页效果

点击最下方的【创建仓库】

创建仓库后,Gitea 会显示如何将代码推送到仓库的指令。我们回到命令行,按照这些指令操作:

Git指令

bash

# 创建一个简单的 README 文件
touch README.md
echo "# My Flask Project" > README.md

# 初始化 Git 仓库
git init

# 创建并切换到 main 分支
git checkout -b main

# 添加文件到暂存区
git add README.md
git add app.py

# 提交更改
git commit -m "first commit"

# 添加远程仓库地址(替换为你的实际地址)
git remote add origin http://服务器IP:3000/用户名/myproject

# 推送代码到远程仓库
git push -u origin main
Git 操作说明
  • git init:在当前目录初始化一个 Git 仓库
  • git checkout -b main:创建并切换到 main 分支
  • git add:将文件添加到暂存区
  • git commit:将暂存区的文件提交到本地仓库
  • git remote add:添加远程仓库地址
  • git push:将本地仓库的代码推送到远程仓库

执行上述命令时,系统会要求你输入 Gitea 的用户名和密码。认证成功后,代码会被推送到 Gitea 仓库。

推送完成后,刷新 Gitea 网页,你应该能看到你的代码已经成功上传:

仓库内容

恭喜
恭喜你!你已经成功部署了 Gitea 代码仓库,并完成了一个简单项目的创建和推送。这是自动化构建和持续集成的第一步。在后续实验中,我们将学习如何将 Gitea 与 CI/CD 工具集成,实现代码的自动构建和部署。

在本实验中,我们学习了:

  1. Gitea 的基本概念和特点
  2. 如何在服务器上部署 Gitea
  3. 如何创建一个简单的 Flask 应用
  4. 如何使用 Git 命令将代码推送到 Gitea 仓库

这些知识和技能为后续学习自动化构建和持续集成打下了基础。

相关内容