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

然后就可以正常使用了

其他的配置自行摸索

相关推荐
虎头金猫15 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS16 小时前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心18 小时前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing18 小时前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)18 小时前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang18 小时前
上传本地镜像到harbor中
docker·容器·持续部署
羑悻的小杀马特19 小时前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe19 小时前
docker常见命令
docker
正经教主21 小时前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde
忆~遂愿21 小时前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器