docker部署gitea (docker-compose篇)

gitea搭建教程

gitea和gitlab对比
Gitea 功能比较简单,需求如果只是单纯存存代码,只做 CI/CD 是足够的,很多附加功能处于缺失状态,需要大量依赖第三方工具。
Gitlab 需要的机器最低配置比较高,对应的,功能也多了很多,如果需要代码 Review 、重度使用 issue 功能、使用 Gitlab 管理项目就比较合适。

因为此次主要是做CI/CD,所以简单写一篇关于docker-compose搭建gitea的教程

文章目录

  • gitea搭建教程
      • 一、`docker-compose`安装
        • 1、下载
        • 2、添加可执行权限
        • 3、查看版本
      • 二、启动`gitea`和`mysql`容器
        • 1、创建`docker-compose.yaml`
        • 2、启动、重启、停止容器
        • 3、相关问题
      • 三、配置 `gitea`
        • 1、访问gitea
        • 2、修改配置
        • 3、添加管理员账户
        • 4、点击 `install`
        • 5、切换中文界面
        • 6、创建一个仓库,同github一样的操作
      • 四、拉取项目
        • 1、安装git
        • 2、克隆项目
        • 3、如何使用ssh地址克隆
        • 4、将密钥添加到gitea
        • 5、ssh方式拉去项目

一、docker-compose安装

1、下载
# github下载
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# daocloud下载(推荐)
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

2、添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
3、查看版本
docker-compose --version

二、启动giteamysql容器

1、创建docker-compose.yaml
version: "3"
# 创建mysql和gitea专用网络
networks:
  gitea:
    external: false
services:
  server:
  	# 指定gitea镜像及版本
    image: gitea/gitea:latest
    # 指定容器别名
    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:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    # 配置端口映射
    ports:
      - "3000:3000"
      - "22:22"
    # 指定依赖(先安装依赖)
    depends_on:
      - db
  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
2、启动、重启、停止容器
# 启动
docker-compose up -d
# 重启
docker-compose restart
# 关闭(仅停止容器,保留容器卷)
docker-compose down
3、相关问题
#ERROR: for gitea  Cannot start service server: driver failed programming external connectivity on endpoint gitea (325053aaf3abbd8df776e549c544799383ec6590149cffadbb301c9ed9f1a7be): Error starting userland proxy: listen tcp4 0.0.0.0:22: bind: address already in use
#ERROR: Encountered errors while bringing up the project
# 原因是22端口占用
$ vi docker-compose.yaml
# 修改 22 -> 222
    ports:
      - "3000:3000"
      - "222:222"
# 同步修改gitea配置文件
vi data/gitea/conf/app.ini
	SSH_PORT         = 222
	SSH_LISTEN_PORT  = 222
$ docker-compose restart

三、配置 gitea

1、访问gitea
http://your-server-ip:3000

docker部署gitea (docker-compose篇)_第1张图片

2、修改配置
# 将ip地址替换为服务器访问地址
SSH Server Domain: `your-server-ip`
Gitea Base URL:` http://your-server-ip:3000`
3、添加管理员账户
# 展开Administrator Account Settings
# 新增账户
4、点击 install
5、切换中文界面

​ language -> update profile

docker部署gitea (docker-compose篇)_第2张图片

6、创建一个仓库,同github一样的操作

docker部署gitea (docker-compose篇)_第3张图片

四、拉取项目

1、安装git
yum install -y git
2、克隆项目
git clone http://192.168.3.91:3000/gitea/simple-java-maven-app.git 
3、如何使用ssh地址克隆
# 创建git用户
useradd git 
passwd git
  New password: *****
  Retype new password: *****

# 切换用户
su git
# 生成ssh密钥
ssh-keygen -t rsa -C "[email protected]"
# 连续回车
# 查看密钥文件
cat ~/.ssh/id_rsa.pub

docker部署gitea (docker-compose篇)_第4张图片

4、将密钥添加到gitea

docker部署gitea (docker-compose篇)_第5张图片

5、ssh方式拉去项目
git clone ssh://[email protected]:222/gitea/simple-java-maven-app.git
# 此时可以不用输入密码啦

docker部署gitea (docker-compose篇)_第6张图片

你可能感兴趣的:(docker,mysql,git)