快速部署轻量级 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
-
其中生成真实证书请参见另一篇:使用 acme.sh 自动签发续期 Let’s encrypt Free 证书
3. Deploy on Kubernetes
4. 相关
- 感谢 • 免费 • 用爱发电 • GitHub releases, archive , gist, raw.githubusercontent.com 文件代理加速下载服务.:https://ghproxy.com/