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

然后就可以正常使用了

其他的配置自行摸索

相关推荐
bgy66668 小时前
从零上手 Docker,容器技术完整入门指南
运维·docker·容器
pride.li13 小时前
Docker教程-Docker安装与镜像配置
运维·docker·容器
bgy666613 小时前
Docker Swarm 容器编排实战指南
运维·docker·容器
再卷还是菜14 小时前
Cephfs总结及kubernetes+Cephfs的整合项目
云原生·容器·kubernetes
力江15 小时前
GitLab 私有化部署实战 —— 从 Omnibus 到 Docker 的踩坑之旅
docker·容器·gitlab
深念Y15 小时前
Docker 镜像体积从 110MB 降到 13MB 后端服务的瘦身
运维·docker·容器
虎王物联16 小时前
Docker容器安全加固:securityContext与seccomp在IoT边缘节点的隔离实践
物联网·安全·docker
YIAN16 小时前
从 Docker 容器操作到 TS 高级类型:前端开发者必备的两套核心工具全解
后端·docker
杨浦老苏16 小时前
群晖 Docker 部署 LAN-Sheriff:实时监控局域网设备对外连接
网络安全·docker·监控·群晖·网络监控
是那盏灯塔17 小时前
Swarm集群
docker