Skip to content

docker 部署 gitea

gitea

Gitea 是一个自己托管的Git服务程序。他和GitHub, Bitbucket or Gitlab等比较类似。他是从 Gogs 发展而来.

docker 部署

使用docker compose,同时创建gitea实例,并使用pgsql数据库

yaml
networks:
  gitea:
    external: false

services:
  gitea-app:
    image: gitea/gitea:1.20.5
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=pgdb:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=gitea
      
      - TZ=Asia/Shanghai
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
      # - /etc/timezone:/etc/timezone:ro
      # - /etc/localtime:/etc/localtime:ro
    ports:
      - "8080:3000"
      - "8022:22"
    depends_on:
      - pgdb

  pgdb:
    image: postgres:15-bookworm
    restart: always
    container_name: pgdb
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea
      - POSTGRES_DB=gitea
    networks:
      - gitea
    volumes:
      - ./postgres:/var/lib/postgresql/data
    ports:
      - 5432:5432

添加act_runner

在使用过程中有些问题还未解决,如速度过慢,主要原因是github下载速度过慢,Windows平台目前只能使用DinD

yaml
  gitea-runner:
    # image: gitea/act_runner:latest-dind-rootless # DinD
    image: gitea/act_runner
    restart: always
    # privileged: true # DinD
    # user: root
    container_name: act_runner
    depends_on:
      - gitea-app
    networks:
      - gitea
    volumes:
      - ./runner/data:/data
      # - ./runner/cache1:/var/lib/docker
      # - ./runner/cache2:/home/rootless/.local/share/docker
      # - ./config.json:/root/.docker/config.json
      # - //wsl.localhost/docker-desktop/run/guest-services/docker.sock:/var/run/docker.sock
      # - //var/run/docker.sock:/var/run/docker.sock
      # - /var/lib/docker/containers/:/var/lib/docker/containers/:ro
      # - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - GITEA_INSTANCE_URL=http://gitea-app:3000/
      # - DOCKER_HOST=unix:///var/run/user/1000/docker.sock # DinD
      # When using Docker Secrets, it's also possible to use
      # GITEA_RUNNER_REGISTRATION_TOKEN_FILE to pass the location.
      # The env var takes precedence.
      # Needed only for the first start.
      - GITEA_RUNNER_REGISTRATION_TOKEN=gUGQmYgfUSXxlIsBmIOVXH0s9FRm0P5WeOafAdT4
      - TZ=Asia/Shanghai
      # - DOCKER_REGISTRY_MIRROR=https://kiw2ei4b.mirror.aliyuncs.com
      # - ALL_PROXY=http://proxy:1090
      # - NO_PROXY=127.0.0.1, localhost, gitea-app