部署 Gerrit 到生产环境
Docker 快速部署
docker run -ti -p 8080:8080 -p 29418:29418 docker.io/gerritcodereview/gerrit:3.9.1
Use docker persistent volumes to keep Gerrit data across restarts. Below is a sample docker-compose.yaml with externally-mounted Lucene indexes, Caches and Git repositories.
version: '3'
services:
gerrit:
image: docker.io/gerritcodereview/gerrit:gerrit:3.9.1
volumes:
- git-volume:/var/gerrit/git
- index-volume:/var/gerrit/index
- cache-volume:/var/gerrit/cache
ports:
- "29418:29418"
- "8080:8080"
volumes:
git-volume:
index-volume:
cache-volume:
Run docker compose up (or docker-compose up with older versions of Docker) to trigger the build and execution of your container.
Docker 镜像项目地址:https://gerrit.googlesource.com/docker-gerrit
Linux 裸机 Standalone Daemon 部署
在需要部署的服务器上安装 Java 环境(推荐 Java17 版本),这里不赘述步骤。
初始化配置
上传编译好或直接下载的软件包到服务器:
# 推荐新建 gerrit 用户部署启动
sudo adduser gerrit && sudo su gerrit
# 初始化项目,注意 gerrit 用户对项目目录的权限
export GERRIT_SITE = /path/to/your/gerrit_application_directory # 可以放到 .bashrc 文件
java -jar gerrit.war init -d $GERRIT_SITE
在初始化过程中,根据提示对项目进行初步配置,·也可以编辑配置文件 $GERRIT_SITE/etc/gerrit.config 来修改,重启服务即可生效。
管理守护进程
$GERRIT_SITE/bin/gerrit.sh start # status | stop | restart
反向代理配置
使用 web server 来反向代理访问服务,方便我们配置域名及 SSL。修改配置文件:
[httpd]
listenUrl = proxy-http://127.0.0.1:8081
以 Nginx 为示例:
server {
# HTTP反向代理相关配置开始 >>>
location ~ /purge(/.*) {
proxy_cache_purge cache_one 127.0.0.1$request_uri$is_args$args;
}
location ^~ {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host 127.0.0.1:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
proxy_set_header X-Host $host:$server_port;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 30s;
proxy_read_timeout 86400s;
proxy_send_timeout 30s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# HTTP反向代理相关配置结束 <<<
}
数据备份
All primary data is stored in git.
- Git 仓库镜像自动同步到主流 Git 托管服务平台,如 Gitee;
- 定时服务器快照备份(云服务厂商付费功能);
- 网站目录定时冷存储到云服务 COS 存储;