Operation

快速部署轻量级 git 测试环境 – gitea

快速部署轻量级 git 测试环境 - gitea

1. 背景

来了新环境,准备在测试上搞一套 tekon + argocd,结果发现 github 上的 repo 死活 pull 不了,或有时半死不活,想切到 gitee,结果发现又 TM 被和谐,默认全部仓库都被强制设为 private 使用不方便,TMD 真是给猿们添乱,后来又快速搭了一套 gitlab,结果这玩意太重开多服务了机器吃不消,苦苦挣扎何解?   后来发现这款超轻量级开源 git 服务,官方参见: https://docs.gitea.io/ ,以下就快速部署一套 gitea 测试环境。

2. Deploy on Docker

2.1 准备配置

sudo mkdir -p /mnt/disk1/gitea/gitea/conf

# 为方便调参,先导出默认配置文件到宿主机
# 注:由于 app.ini 是由 /bin/s6-svscan 动态生成而非镜像中静态文件,因此也需执行此命令生成,然后 sleep 确保执行完成.
docker run \
--rm \
--entrypoint /bin/sh \
gitea/gitea:1.15.9 \
-c "/usr/bin/entrypoint /bin/s6-svscan /etc/s6 >/dev/null & sleep 5; cat /data/gitea/conf/app.ini" > /mnt/disk1/gitea/gitea/conf/app.ini

2.2 跳过 webhook 时自签 ssl 证书校验(可选)

echo -e "\n[webhook]\nSKIP_TLS_VERIFY=true" >> /mnt/disk1/gitea/gitea/conf/app.ini

2.3 启动容器(使用内置 sqllite3 极简部署)

sudo cat <<-EOF>docker-compose.yml
version: "3"
networks:
  gitea:
    external: false
services:
  server:
    image: gitea/gitea:1.15.9
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    networks:
      - gitea
    volumes:
      - /mnt/disk1/gitea/:/data/
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3100:3000"
      - "3122:22"
EOF

docker-compose up -d
  • 配置 nginx 域名访问
sudo cat <<-EOF>/etc/nginx/conf.d/gitea.conf
server {
    listen       443 ssl;
    server_name  git.example.com;
    ssl_certificate cert.d/example.fullchain.letencrypt.pem;
    ssl_certificate_key cert.d/example.letencrypt.pem;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://localhost:3100; break;
    }
}
EOF

sudo systemctl restart nginx

3. Deploy on Kubernetes

4. 相关

  • 感谢 • 免费 • 用爱发电 • GitHub releases, archive , gist, raw.githubusercontent.com 文件代理加速下载服务.:https://ghproxy.com/

留言

您的电子邮箱地址不会被公开。