Docker系列 基于Gitea搭建私人代码托管平台

一、前言

由于github和gitee都有各种各样的限制,索性自己搭建一个代码管理平台。这里主要是个人使用,所以使用了轻量级的gitea来部署。

二、部署

docker-compose.yml文件可以直接参考官方的安装指导。官方指导对各个参数说明的比较清楚了,这里就不再赘述了,下面直接贴出我的配置文件:

version: "3"

networks:
  gitea:
    external: false

services:
  gitea:
    image: gitea/gitea:1.21.7
    container_name: gitea
    restart: always

    environment:
      - USER_UID=1000
      - USER_GID=1000

      # default parameter
      - APP_NAME="Gitea: Git with a cup of tea" # 应用程序名称,在页面标题中使用。
      - DOMAIN=example.cn # 此服务器的域名,用于 Gitea UI 中显示的 http 克隆 URL。
      - SSH_DOMAIN=example.cn # 该服务器的域名,用于 Gitea UI 中显示的 ssh 克隆 URL。如果启用了安装页面,则 SSH 域服务器将采用以下形式的 DOMAIN 值(保存时将覆盖此设置)。
      - SSH_PORT=222
      - SSH_LISTEN_PORT=222
      - DISABLE_SSH=false
      - HTTP_PORT=3000
      - ROOT_URL=https://example.cn # 覆盖自动生成的公共 URL。如果内部 URL 和外部 URL 不匹配(例如在 Docker 中),这很有用。
      - DB_TYPE=postgres
      - DB_HOST=giteadb:5432 # need hostname:port
      - DB_NAME=gitea
      - DB_USER=gitea
      - DB_PASSWD=gitea
      - INSTALL_LOCK=false # 禁止访问安装页面。
      - SECRET_KEY="" # 全局密钥。建议设置
      - DISABLE_REGISTRATION=true # 禁用注册,之后只有管理员才能为用户创建帐户。

    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:222"
    depends_on:
      - giteadb

  giteadb:
    image: postgres:16.0
    container_name: giteadb
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea
      - POSTGRES_DB=gitea
    volumes:
      - ./postgres:/var/lib/postgresql/data

主要有两点需要注意

  1. ssh配置
    如果想通过ssh容器直通的方法使用ssh,官方指导虽然很详细,但是个人觉得还是比较复杂的,所以建议直接在非标准的端口运行容器SSH。
    这里尝试过将容器内端口和宿主机端口设置成不一样的,但是发现页面显示端口会异常,所以直接将端口都配置成一样的了。
    environment:
      - SSH_PORT=222
      - SSH_LISTEN_PORT=222
	  ports:
      - "222:222"
  1. URL配置
    因为是容器部署的,需要正确的配置 ROOT_URLDOMAINSSH_DOMAIN,我这里是用域名访问的,所以都配置对应域名。

三、启动

输入指令 docker-compose up -d启动容器,浏览器输入 ip:端口域名进入登录界面,首次登录会进入安装界面,这里可以对一些配置进行再次修改。这里需要注意,如果通过 INSTALL_LOCK:true禁止进入安装界面,则会直接进入登录界面,此时第一个注册的账户即管理员账户。
066fc9ba8a7e8e8f1f8021dd34c590fe.png

安装并登录成功后,会进入一个和github类似的界面,到这里安装就结束了。然后就可以像在github上一样的来使用gitea了。
3b6b441dfa9903614a0c93529c155d1b.png

四、总结

Gitea的部署比较简单,官方安装文档介绍得也很详尽,而且有中文的版本,所以部署起来还是比较方便的。

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息