Gitea安装和使用

Linux下Gitea安装和使用

一、本地源码安装

1. 准备环境

通过源码编译安装,需要事先安装好

2. 下载源码

下载 https://github.com/go-gitea/gitea 得到gitea-main.zip

3. 编译

gitea-main.zip解压后,准备编译。
编译tags可选项:

  • bindata: bindata: 这个编译选项将会把运行Gitea所需的所有外部资源都打包到可执行文件中,这样部署将非常简单因为除了可执行程序将不再需要任何其他文件。
  • sqlite sqlite_unlock_notify: 这个编译选项将启用SQLite3数据库的支持,建议只在少数人使用时使用这个模式。
  • pam: 这个编译选项将会启用 PAM (Linux Pluggable Authentication Modules) 认证,如果你使用这一认证模式的话需要开启这个选项。

以下为我用的编译方式:

cd gitea-main
# 编译
TAGS="bindata" make build

# 交叉编译。Go 编译器支持交叉编译到不同的目标架构。
# 交叉构建适用于 Linux ARM64 的 Gitea
GOOS=linux GOARCH=arm64 TAGS="bindata" make build
# 交叉构建适用于 Linux ARM64 的 Gitea,并且带上 Gitea 发行版采用的编译选项
CC=aarch64-unknown-linux-gnu-gcc GOOS=linux GOARCH=arm64 TAGS="bindata" make build

附:
Go 支持的目标架构列表:

$GOOS $GOARCH
linux 386
linux amd64
linux arm
linux arm64
linux loong64
linux mips
linux mipsle
linux mips64
linux mips64le
linux ppc64
linux ppc64le
linux riscv64
linux s390x
windows 386
windows amd64
windows arm
windows arm64
android 386
android amd64
android arm
android arm64
ios arm64
darwin amd64
darwin arm64
freebsd 386
freebsd amd64
freebsd arm
netbsd 386
netbsd amd64
netbsd arm
openbsd 386
openbsd amd64
openbsd arm
openbsd arm64
plan9 386
plan9 amd64
plan9 arm
aix ppc64
dragonfly amd64
illumos amd64
js wasm
solaris amd64

编译后会生成gitea二进制文件。

4. 启动

输入

./gitea web

启动运行
打开浏览器,访问http://localhost:3000

在这里插入图片描述点击右上角“注册”可以注册账号,但初次使用会进行站点配置,如下。

5. 站点配置

在这里插入图片描述
在这里插入图片描述
点击“立即安装”后,便可以注册账号登录使用了。
附: 另外,也可本地直接下载gitea二进制包,进行二进制安装。

二、本地源码 + docker mysql 安装

1. 源码编译

可以先将源码编译后,再连mysql,编译同上。

2. 创建gitea_db容器

# 拉取mysql8.0镜像
docker pull mysql:8.0
# 查看镜像
docker images
# 创建容器并后台运行。主机通过3307端口对应着mysql容器的3306端口
docker run -td --name gitea_db --restart=always -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql:8.0

进入容器创建gitea库

# 进入容器
docker exec -it gitea_db bash
# 进入容器后:
# 登入mysql
mysql -uroot -p
# 创建新库gitea
create database gitea;

3. 启动和配置

# 启动
./gitea

浏览器访问localhost:3000,初次使用会进行配置:
在这里插入图片描述

三、docker源码 + docker mysql 安装

创建两个容器:

  • gitea_web:存放gitea项目
  • gitea_db:存放mysql
    (其实也可以采用创建一个容器、将gitea和mysql都放在一个容器里的思路,但这里采用微服务的思路。)

1. 创建gitea_db容器

# 拉取mysql8.0镜像
docker pull mysql:8.0
# 查看镜像
docker images
# 创建容器并后台运行。主机通过3307端口对应着mysql容器的3306端口
docker run -td --name mysql_db --restart=always -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql:8.0

2. 创建gitea_web容器

以Ubuntu20.04环境为例。

docker pull ubuntu:20.04
# 创建容器。主机通过15000端口对应着gitea_web容器的3000端口,容器里挂载个U盘目录/volumes_usb对应着主机目录/home/user/mydocker/mnt/
docker create -it --name gitea_web -p 15000:3000 -v /home/user/mydocker/mnt/:/volumes_usb ubuntu:20.04 
docker start gitea_web

# 确保 gitea_web 和 gitea_db 容器在运行
docker ps


(配置网桥)
# 自建一个网桥customize_bridge,让gitea_web 和 gitea_db两个容器连接起来,即在同一网段,能通信
docker network create -d bridge customize_bridge
docker network connect customize_bridge gitea_web
docker network connect customize_bridge gitea_db

进入容器,并在线安装一些基本工具

# 进入容器
docker exec -it gitea_web bash
# 进入容器后:
apt update
apt install make
apt install gcc
apt install vim

cd /volumes_usb

参考本文开头章节一、源码安装,然后将准备好的gitea源码、node、npm离线文件放在主机 /home/user/mydocker/mnt/ 目录下, 以便容器可通过 /volumes_usb 目录找到使用,接下来操作过程同本文开头章节一、源码安装
这时候编译可以自定义cpu和系统环境了
编译成功后会生成gitea二进制文件,但gitea二进制文件不支持用root执行,所以需要新建用户

# 进入容器
docker exec -it gitea_web bash
# 进入容器后:
# 创建新用户user
adduser user
# 更换gitea项目文件的所有者,以便能操作
chown user:user -R /路径/gitea-main
# 切换新建的user用户
su user
cd gitea-main
./gitea

3. 访问

主机访问localhost:15000,最后站点配置如下:
在这里插入图片描述

四、docker-compose 安装

1. 准备docker-compose.yml

在自定义目录下新建 docker-compose.yml 文件,如在/home/user/mydocker/docker_gitea 下新建:
docker-compose.yml

version: "2"
  
networks:
    gitea:
        external: false

services:
    server:
        container_name: gitea_server
        image: gitea/gitea:latest
        environment:
            - USER_UID=1000
            - USER_GID=1000
        restart: always
        networks:
            - gitea
        volumes:
            - ./data:/data
        ports:
            - "15000:3000"
            - "10022:22"
        depends_on:
            - db

    db:
        container_name: gitea_db
        image: mysql:8.0
        restart: always
        environment:
            - MYSQL_ROOT_PASSWORD=gitea
            - MYSQL_USER=gitea
            - MYSQL_PASSWORD=gitea
            - MYSQL_DATABASE=gitea
        networks:
            - gitea
        volumes:
            - ./mysql:/var/lib/mysql

此功能是创建两个容器:gitea_server、gitea_db

  • gitea_server:存放gitea项目及应用,容器里gitea web端口为3000,对应外边宿主机的访问端口为15000
  • gitea_db:存放mysql
    mysql信息
用户 密码
root gitea
gitea gitea

mysql库:gitea

2. 下载

cd /home/user/mydocker/docker_gitea/
docker-compose up # 或 docker-compose up -d

下载后会在 /home/user/mydocker/docker_gitea/ 目录下自动生成 datamysql 文件夹。

3. 启动

cd /home/user/mydocker/docker_gitea/

# 启动
docker-compose start
####### 或者 #######
docker start gitea_server 
docker start gitea_db

# 停止
docker-compose stop
####### 或者 #######
docker stop gitea_server 
docker stop gitea_db

启动后打开浏览器,访问http://localhost:15000
在这里插入图片描述点击右上角“注册”可以注册账号,但初次使用会进行站点配置,如下。

4. 站点配置

在这里插入图片描述

点击“立即安装”后,便可以注册账号登录使用了。

5. 迁移(仅适用于同一cpu架构、同一系统)

因为此法docker-compose.yml 安装的是根据当前环境自动编译好的gitea二进制文件,所以迁移时仅适用于同一cpu架构、同一系统。如果想适用于其他环境的,需要输入编译参数手动编译。参考下面第三节
迁移到其他服务器呢?

# 当前服务器,保存
docker commit gitea_server gitea:v1
docker commit gitea_db gitea_db:v1
docker save -o ./gitea.tgz gitea:v1
docker save -o ./gitea_db.tgz gitea_db:v1

# 另一台服务器,导入
docker load -i gitea.tgz
docker load -i gitea_db.tgz
docker create -it --name gitea_db mysql:8.0

更多使用功能参考官方手册:https://docs.gitea.io/zh-cn/install-from-source/

猜你喜欢

转载自blog.csdn.net/Acegem/article/details/129793882
今日推荐