在Ubuntu26上使用Docker部署Gitea

在Ubuntu26上使用Docker部署Gitea

  • [零. 环境](#零. 环境)
  • [一. Docker](#一. Docker)
    • [1.1 安装](#1.1 安装)
    • [1.2 换源](#1.2 换源)
  • [二. 安装Gitea](#二. 安装Gitea)
  • [三. 配置](#三. 配置)

零. 环境

shell 复制代码
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

验证结果:

shell 复制代码
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的源基本要付费,免费的不太好用,这里放两个免费的。

shell 复制代码
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

shell 复制代码
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

yaml 复制代码
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

shell 复制代码
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

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

shell 复制代码
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,如果有反代记得用反代的地址。

然后就可以正常使用了

其他的配置自行摸索

相关推荐
东宇科技1 小时前
我用docker创建了一个springboot4项目
阿里云·docker·容器
梦梦代码精11 小时前
连锁品牌数字化:从门店扩张到用户资产运营的技术底座
大数据·人工智能·低代码·docker·开源·代码规范
InfinitePlus14 小时前
Docker MySQL搭建一主一从
mysql·docker
坐吃山猪16 小时前
Docker07-MySQL
mysql·docker·容器
Wzx19801217 小时前
python沙箱和docker沙箱你选对了吗?
开发语言·python·docker
CodeDevMaster17 小时前
关于PaddleOCR-VL部署与使用说明
docker·llm
Kismet_nvi17 小时前
《Kubernetes Service 进阶、kube-proxy 与 Ingress 实战精要》
云原生·容器·kubernetes
Ghost Face...18 小时前
龙芯Docker全流程:安装到离线迁移实战
java·docker·eureka
Crazy________18 小时前
Redis03:持久化存储,大key分析,主从复制及哨兵模式
数据库·redis·容器