828华为云征文 | 云服务器Flexus X实例:部署 Gitea,拥有自己的Git仓库,管理本地代码

目录

[一、什么是 Gitea](#一、什么是 Gitea)

[二、安装 Docker 环境](#二、安装 Docker 环境)

[2.1 更新 apt 软件源](#2.1 更新 apt 软件源)

[2.2 安装依赖](#2.2 安装依赖)

[2.3 安装 Docker](#2.3 安装 Docker)

[三、安装 Gitea](#三、安装 Gitea)

[3.1 创建 docker-compose.yml](#3.1 创建 docker-compose.yml)

[3.2 启动 Gitea 服务](#3.2 启动 Gitea 服务)

[3.3 初始化配置](#3.3 初始化配置)

[四、运行 Gitea](#四、运行 Gitea)

[4.1 登录/注册](#4.1 登录/注册)

[4.2 创建仓库](#4.2 创建仓库)

五、总结


本篇文章通过部署 Gitea,实现本地 Git 仓库,真实体验了 "云服务器Flexus X实例",深感其卓越性能与灵活性。这款实例以其六倍于常的强劲算力,搭配旗舰级的操作体验,广泛适用于高科技、零售、金融、游戏等众多领域的通用工作负载需求。本文旨在详细阐述如何高效利用"云服务器Flexus X实例",包括如何在其中从零开始,通过安装相关依赖、安装Docker、安装 Gitea等步骤,实现自己的 Git 仓库,管理本地代码。精彩内容,不容错过,快来一探究竟吧!

一、什么是 Gitea

Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。包括 Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。 Gitea 最初是从 Gogs 分支而来,几乎所有代码都已更改。

通过在 云服务器Flexus X实例 上部署,管理本地代码。

下面就让我们开始吧!

二、安装 Docker 环境

2.1 更新 apt 软件源

首先,更新 apt 软件源,执行如下命令。

bash 复制代码
root@flexusx-7305:~# sudo apt update
Hit:1 http://repo.huaweicloud.com/ubuntu focal InRelease
Get:2 http://repo.huaweicloud.com/ubuntu focal-updates InRelease [128 kB]
Hit:3 http://repo.huaweicloud.com/ubuntu focal-backports InRelease
Hit:4 http://repo.huaweicloud.com/ubuntu focal-security InRelease
Get:5 http://repo.huaweicloud.com/ubuntu focal-updates/main amd64 Packages [3,563 kB]
Get:6 http://repo.huaweicloud.com/ubuntu focal-updates/universe amd64 Packages [1,231 kB]
Get:7 http://repo.huaweicloud.com/ubuntu focal-updates/universe i386 Packages [807 kB]
Hit:8 https://packages.redis.io/deb focal InRelease        
Fetched 5,729 kB in 2s (2,559 kB/s)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
35 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@flexusx-7305:~#

2.2 安装依赖

然后,安装需要的依赖,执行如下命令。

bash 复制代码
root@flexusx-7305:~# sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

添加 Docker 的官方 GPG 密钥,执行如下命令。

bash 复制代码
root@flexusx-7305:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK
root@flexusx-7305:~#

添加 apt-get 源,如下所示。

bash 复制代码
root@flexusx-7305:~# sudo add-apt-repository \
> "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
> $(lsb_release -cs) \
> stable"
Hit:1 http://repo.huaweicloud.com/ubuntu focal InRelease
Hit:2 http://repo.huaweicloud.com/ubuntu focal-updates InRelease
Hit:3 http://repo.huaweicloud.com/ubuntu focal-backports InRelease
Hit:4 http://repo.huaweicloud.com/ubuntu focal-security InRelease
Get:5 https://download.docker.com/linux/ubuntu focal InRelease [57.7 kB]
Get:6 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages [50.2 kB]
Hit:7 https://packages.redis.io/deb focal InRelease                         
Fetched 108 kB in 2s (56.5 kB/s)
Reading package lists... Done
root@flexusx-7305:~#

2.3 安装 Docker

然后,执行命令安装 docker,如下所示。

bash 复制代码
root@flexusx-7305:~# sudo apt install docker-ce

查看 docker 版本。

bash 复制代码
root@flexusx-7305:~# docker --version
Docker version 27.2.1, build 9e34c9b
root@flexusx-7305:~#

最后,安装 docker-compose,执行如下命令。

bash 复制代码
root@flexusx-7305:~# sudo apt install docker-compose
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  redis-server redis-tools
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  python3-cached-property python3-docker python3-dockerpty python3-docopt python3-importlib-metadata python3-jsonschema python3-more-itertools python3-pyrsistent python3-texttable python3-websocket python3-zipp
Suggested packages:
  python-jsonschema-doc
Recommended packages:
  docker.io
The following NEW packages will be installed:
  docker-compose python3-cached-property python3-docker python3-dockerpty python3-docopt python3-importlib-metadata python3-jsonschema python3-more-itertools python3-pyrsistent python3-texttable python3-websocket python3-zipp
0 upgraded, 12 newly installed, 0 to remove and 33 not upgraded.
Need to get 412 kB of archives.
After this operation, 2,414 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://repo.huaweicloud.com/ubuntu focal/universe amd64 python3-cached-property all 1.5.1-4 [10.9 kB]
Get:2 http://repo.huaweicloud.com/ubuntu focal/universe amd64 python3-websocket all 0.53.0-2ubuntu1 [

到这里 Docker 安装完成。

三、安装 Gitea

3.1 创建 docker-compose.yml

Gitea 在其 Docker Hub 组织内提供自动更新的 Docker 镜像。可以始终使用最新的稳定标签或使用其他服务来更新 Docker 镜像。

首先,创建 docker-compose.yml 文件,内容如下所示。

bash 复制代码
version: "3"
  
networks:
  gitea:
    external: false

services:
  server:
    image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gitea/gitea:1.22.1
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=mysql
      - GITEA__database__HOST=db:3306
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=gitea
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - db

  db:
    image: daocloud.io/library/mysql:8
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    volumes:
      - ./mysql:/var/lib/mysql

3.2 启动 Gitea 服务

执行 docker 命令启动 Gitea 服务。

bash 复制代码
root@flexusx-7305:~# docker-compose up -d
Pulling db (daocloud.io/library/mysql:)...
latest: Pulling from library/mysql
45b42c59be33: Pull complete
b4f790bd91da: Pull complete
325ae51788e9: Pull complete
adcb9439d751: Pull complete
174c7fe16c78: Pull complete
698058ef136c: Pull complete
4690143a669e: Pull complete
f7599a246fd6: Pull complete
35a55bf0c196: Pull complete
790ac54f4c47: Pull complete
b0ddd5d1b543: Pull complete
1aefd67cb33d: Pull complete
Digest: sha256:03306a1f248727ec979f61424c5fb5150e2c5fd2436f2561c5259b1258d6063c
Status: Downloaded newer image for daocloud.io/library/mysql:latest
Pulling server (swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gitea/gitea:)...

如果拉取不下来镜像,可以通过如下方式拉取。

bash 复制代码
root@flexusx-7305:~# docker pull daocloud.io/library/mysql:8
root@flexusx-7305:~# docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gitea/gitea:1.22.1

查看运行的 docker 容器。

bash 复制代码
root@flexusx-7305:~# docker ps
CONTAINER ID   IMAGE                                                                   COMMAND                  CREATED              STATUS              PORTS                                                                              NAMES
ef512af0c1c5   swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gitea/gitea:1.22.1   "/usr/bin/entrypoint..."   About a minute ago   Up About a minute   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp, 0.0.0.0:222->22/tcp, [::]:222->22/tcp   gitea
65fe1c102df6   daocloud.io/library/mysql:8                                             "docker-entrypoint.s..."   About a minute ago   Up About a minute   3306/tcp, 33060/tcp                                                                root_db_1
root@flexusx-7305:~#

3.3 初始化配置

访问**http://服务器IP:3000/**,进入初始配置界面,如下所示。

填写配置信息,注意,最好设置下管理员账号,然后点击立即安装即可。

四、运行 Gitea

4.1 登录/注册

登录网址 **http://服务器IP:3000/**,Gitea 本地仓库界面如下所示。

可以通过右上角的注册按钮注册新的账号,也可以通过 root 账号登录,如下所示。

Gitea 登录后界面如下所示。

4.2 创建仓库

点击右上角 +,然后点击创建仓库按钮,进入配置仓库参数界面,如下所示。

可以根据需要配置仓库参数,仓库名称必填,配置完成后点击创建仓库,配置界面如下所示。

创建仓库成功,现在可以上传代码啦。

五、总结

在深度体验了"Flexus云服务器X实例 "后,成功部署了Gitea ,拥有了自己的 Git 仓库,实现了对本地代码库的无缝管理。这一过程不仅展现了 Flexus云服务器X实例 的便捷与高效,更在于其流畅无卡顿的操作体验,让初学者也能轻松上手,日常管理变得前所未有的省心。对于追求高效代码管理体验的用户来说,这无疑是一个值得立即尝试的优质选择。赶紧来体验 Flexus云服务器X实例带来的卓越性能与便捷管理吧!

相关推荐
小屁不止是运维9 小时前
麒麟操作系统服务架构保姆级教程(二)ssh远程连接
linux·运维·服务器·学习·架构·ssh
黑客K-ing11 小时前
网络安全防范
linux·服务器·web安全
这题怎么做?!?11 小时前
ARP协议及其具体过程
运维·服务器·网络
卡卡大怪兽12 小时前
fastAPI接口的请求与响应——基础
服务器·网络·fastapi
路飞雪吖~12 小时前
【Linux】进程控制
linux·运维·服务器
昌sit!12 小时前
监控IP频繁登录服务器脚本
服务器·网络·tcp/ip
北京华人开创公司12 小时前
京准电钟:电厂自控NTP时间同步服务器技术方案
运维·服务器·卫星时钟服务器·ntp时间服务器·时间同步服务器·网络时间服务器·北斗授时服务器
大梦百万秋12 小时前
C++中的虚拟化:通过虚拟机管理模拟服务器虚拟化
服务器·开发语言·c++
张声录113 小时前
【ETCD】ETCD 的一致性读(Linearizable Read)流程解析
服务器·数据库·etcd
余生H14 小时前
前端的Python应用指南(一):快速构建 Web 服务器 - Flask vs Node.js 对比
服务器·前端·python