docker持续集成 gitlab docker gitea_运维

简介

Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证.

中文首页: https://gitea.io/zh-cn/

Gitea 文档: https://docs.gitea.io/zh-cn/

官方安装教程见: install-with-docker

本文记述使用 docker 安装的方法。

Docker 安装 Gitea

该实践采用Docker-Compose 容器编排技术。
整个服务分为网络、Gitea 服务端和数据存储端三个组件。
其中网络组件使用 Docker 创建一个虚拟网络 gitea,Gitea 组件运行Gitea 服务;数据存储组件使用 MySQL。Gitea 服务组件与MySQL通过网络组件gitea 使用。

Docker-Compose 文件

在合适的目录(我的目录为:D:\apps-data\docker\git-lib)创建 docker-compose.yml 文件。 docker-compose.yml 文件内容如下:

version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea-server
    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:
      - D:/apps-data/docker/git-lib/data:/data
      - D:/apps-data/docker/git-lib/etc/timezone:/etc/timezone:ro
      - D:/apps-data/docker/git-lib/etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "2222:22"
    depends_on:
      - db

  db:
    image: mysql:8
    container_name: gitea-mysql-server
    # restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    ports:
      - "3307:3306"
      - "33070:33060"
    volumes:
      - D:/apps-data/docker/git-lib/mysql:/var/lib/mysql

docker-compose.yml 文件中依次编排了网络gitea,gitea 服务 gitea-server 和数据库服务 gitea-mysql-server

启动

打开 CMD 或者 PowerShell ,进入 docker-compose.yml 所在的文件夹(D:\apps-data\docker\git-lib)。

运行如下命令:

docker-compose up -d

运行结果如下:

docker持续集成 gitlab docker gitea_运维_02


注意 镜像 gitea 和 mysql:8 是提前拉取到本地的,如过没有提前拉取,看到的信息将会增加拉取过程。

访问

如上服务启动成功后,即可访问gitea,默认地可以使用 localhost:3000 或 本地IP:3000的方式访问。

docker持续集成 gitlab docker gitea_windows_03

新部署的服务,第一次访问时,gitea 会提示进行初始化配置,具体配置见下章节。

初始化配置

初始化配置分为数据库设置、一般设置和可选设置三部分。

数据库设置

docker持续集成 gitlab docker gitea_gitea_04


Gitea 支持的数据库类型有 MySQL、PostgreSQL、MSSQL、SQLLite3等多种数据库。本实践使用MySQL 数据库,因此选用 MySQL ,其他项配置值与 docer-compose.yml 中数据库配置保持一直即可。

** 注:** 数据库主机配置db:3306 , 此处是指 gitea-server 访问数据时会通过它们之间的网络直接使用 3306 访问,不必通过数据库服务暴露的 3307 来访问。

一般设置

一般设置用于设置 Gitea 服务端容器相关信息,可配置项如下所示。

docker持续集成 gitlab docker gitea_运维_05

  • 站点名称: 可随意命名,如 Gitea-XZBD
  • 服务器域名:默认为localhost,也可以是其他域名。公网环境下建议使用公网域名或着主机IP。如设置为:192.168.1.5
  • SSH 服务端口:默认是 22 , 建议配置为 docker-compose.yml 中暴露的端口,如: 2222。
  • HTTP 服务端口: 默认是 3000, 建议配置为 docker-compose.yml 中暴露的端口,如: 3000(注意是暴露的端口)。
  • 基础 URL:服务器域名 和 HTTP 服务端口 真实值组合,格式为:http://服务器域名:HTTP 服务端口。如: http://192.168.1.5:3000

其他选项建议配置为默认。

配置完成后的信息如下:

docker持续集成 gitlab docker gitea_docker_06

可选设置

可选设置包含 电子邮箱设置、服务器和第三方服务设置、管理员账号设置三部分。配置界面如下:

docker持续集成 gitlab docker gitea_gitea_07


其中管理员账号设置可选,若没有配置,安装完成后,第一个注册的账号就是管理员长账号。

立即安装

初始化配置完成后,点击 立即安装 ,等待安装完成。

安装完成后,页面会跳转到登录页面,页面如下

docker持续集成 gitlab docker gitea_docker持续集成 gitlab_08

使用

以上即完成了 Gitea 的安装,本章节记述了 Gitea 的基本使用。

注册

前面安装过程中,没有设置管理员账号,安装完成后,还没有一个 Gitea 账号,因此要首先注册一个账号。

注意:第一个注册的账号将被设置为管理员账号

点击注册 或 ** 还没帐户?马上注册。** 跳转到注册页面,页面如下图所示。

docker持续集成 gitlab docker gitea_docker持续集成 gitlab_09


注册成功后,Gitea 会自动登录,并跳转到用户的首页,如下

docker持续集成 gitlab docker gitea_运维_10

登录

退出后,访问登录页面。输入密码和用户名即可登录。

创建项目、组织

登录成功后,即可创建项目或组织。这部分内容与Github或GitLib一致,不再详细记述。

总结

本文介绍了 使用 Docker 部署 Gitea 的一个实践过程,其中选用了MySQL数据库,同时使用了 Docker-Compose 容器编排技术。