零. 环境

ubuntu@VM-0-7-ubuntu:~$ uname
Linux
ubuntu@VM-0-7-ubuntu:~$ uname -m
x86_64
ubuntu@VM-0-7-ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 26.04 LTS
Release:        26.04
Codename:       resolute
ubuntu@VM-0-7-ubuntu:~$

一. Docker

1.1 安装

安装命令,其他的一些组件自己选配
sudo apt install -y docker.io docker-compose-v2
启动
sudo systemctl enable docker --now
验证
sudo docker --version
docker compose version
验证结果:

ubuntu@VM-0-7-ubuntu:~$ sudo docker --version
Docker version 29.1.3, build 29.1.3-0ubuntu4.1
ubuntu@VM-0-7-ubuntu:~$ docker compose version
Docker Compose version 2.40.3+ds1-0ubuntu1

选用,让当前用户对docker免sudu。就是将当前用户加入Docker的用户组。
sudo usermod -aG docker $USER

1.2 换源

Docker的源基本要付费,免费的不太好用,这里放两个免费的。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me",
  ]
}
EOF

其中xunyuan可以自己充值买流量,如果是腾讯云可以用腾讯云内网:
https://mirror.ccs.tencentyun.com
重启
sudo systemctl daemon-reload
sudo systemctl restart docker
验证
sudo docker info | grep -A 1 Mirrors

ubuntu@VM-0-7-ubuntu:~$ sudo systemctl daemon-reload
sudo systemctl restart docker
ubuntu@VM-0-7-ubuntu:~$ sudo docker info | grep -A 1 Mirrors
 Registry Mirrors:
  https://mirror.ccs.tencentyun.com/
ubuntu@VM-0-7-ubuntu:~$

二. 安装Gitea

官方文档:https://docs.gitea.com/zh-cn/installation/install-with-docker
配置docker-compose.yml

version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: docker.gitea.com/gitea:1.27.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: docker.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

其中几处需要修改的地方:
两个volumes:

  • - ./gitea:/data
  • - ./mysql:/var/lib/mysql

建议放在SSD里,或者看你需求,我是放在/opt/gitea_install

sudo mkdir -p /opt/gitea_install/{mysql,gitea}
sudo chown -R $USER:$USER /opt/gitea_install
cd /opt/gitea_install

当然还有弱密码的问题,记得同步修改gitea里的密码

  • - MYSQL_ROOT_PASSWORD=gitea
  • - MYSQL_PASSWORD=gitea

总的配置如下,这里是随便填的一个弱密码,自己改为强密码

ubuntu@VM-0-7-ubuntu:~$ sudo mkdir -p /opt/gitea_install/{mysql,gitea}
ubuntu@VM-0-7-ubuntu:~$ sudo chown -R $USER:$USER /opt/gitea_install
ubuntu@VM-0-7-ubuntu:~$ cd /opt/gitea_install
ubuntu@VM-0-7-ubuntu:/opt/gitea_install$ vim docker-compose.yml
ubuntu@VM-0-7-ubuntu:/opt/gitea_install$ cat docker-compose.yml
version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: docker.gitea.com/gitea:1.27.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=ABCabc123..
    restart: always
    networks:
      - gitea
    volumes:
      - /opt/gitea_install/gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - db

  db:
    image: docker.io/library/mysql:8
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=ABCabc123..
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=ABCabc123..
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    volumes:
      - /opt/gitea_install/mysql:/var/lib/mysql
ubuntu@VM-0-7-ubuntu:/opt/gitea_install$ ls
docker-compose.yml  gitea  mysql
ubuntu@VM-0-7-ubuntu:/opt/gitea_install$

安装:
sudo docker compose up -d

三. 配置

访问你的IP:3000,或者用nginx反代到其他端口,总之,你得访问,然后进行配置,按照这些规则填写即可。
在这里插入图片描述
注意,这个SSH端口号要还有我们的HTTP服务端口,需要和我们docker外部端口号一致。
例如,对于SSH一般是docker配置里填的 - "222:22",也就是222,如果有反代记得用反代的地址。
在这里插入图片描述

然后就可以正常使用了
在这里插入图片描述
其他的配置自行摸索

更多推荐