Quick Start: Gerrit
Prerequisite
OR
Note: If using HTTP, remove the tls: {}
in dynamic configuration.
Preparation
create some dirs and files
1 sudo install -d /opt/gerrit; cd /opt/gerrit; sudo install -d etc git db index cache plugins
vim /opt/gerrit/etc/gerrit.config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 [gerrit] basePath = git [index] type = LUCENE [auth] type = ldap [sshd] listenAddress = *:29418 [httpd] listenUrl = http://*:8080 / [cache] directory = cache [container] user = root [download] schema = http schema = ssh [plugins] allowRemoteAdmin = true [ldap] server = ldap://ldap username = cn=admin,dc=chaos,dc=io accountBase = dc=chaos,dc=io accountPattern = (&(objectClass=person)(uid=${username} )) accountFullName = displayName accountEmailAddress = mail [receive] enableSignedPush = false [user] name = Gerrit Code Review email = [email protected] anonymousCoward = Gerrit Code Review [sendemail] smtpServer = smtp.exmail.qq.com smtpServerPort = 465 smtpEncryption = SSL sslVerify = true smtpUser = [email protected] smtpPass = YOUR_PASSWORD from = ${user} (Code Review) <[email protected] > [commentlink "changeid"] match = (I[0 -9 a-f]{8 ,40 }) link = "#/q/$1" [commentlink "gitee"] match = "gitee: #(.{6})" link = https://e.gitee.com/example_user/dashboard?issue=$1
vim /opt/gerrit/etc/secure.config
1 2 3 4 [ldap] password = secret
compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 services: gerrit: image: gerritcodereview/gerrit user: root ports: - "29418:29418" expose: - 8080 volumes: - /opt/gerrit/etc:/var/gerrit/etc - /opt/gerrit/git:/var/gerrit/git - /opt/gerrit/db:/var/gerrit/db - /opt/gerrit/index:/var/gerrit/index - /opt/gerrit/cache:/var/gerrit/cache - /opt/gerrit/plugins:/var/gerrit/plugins environment: - CANONICAL_WEB_URL=http://gerrit.x.internal - HTTPD_LISTEN_URL=proxy-http://*:8080 networks: - traefik-net command: init networks: traefik-net: external: true
gerrit.yml in dir dynamic-conf
You should touch gerrit.yml
in traefik dir dynamic-conf .
For much more information, please reference the Prerequisite .
1 2 3 4 5 6 7 8 9 10 11 12 13 http: routers: gerrit: rule: "Host(`gerrit.x.internal`)" service: "gerrit" tls: { } services: gerrit: loadBalancer: servers: - url: "http://gerrit:8080"
DNS Configuration
Configure your DNS or modify your hosts file:
For Unix-like systems: Edit /etc/hosts
For Windows: Edit C:\Windows\System32\drivers\etc\hosts
Add the following line:
1 127.0.0.1 gerrit.x.internal
Run
STEP-1: Run Gerrit docker init setup from docker
Uncomment the command: init
option in compose.yml
and run Gerrit with docker-compose in foreground.
1 docker compose up gerrit
Wait until you see in the output the message Initialized /var/gerrit
and then the container will exit.
STEP-2: Start Gerrit in daemon mode
Comment out the command: init
option in docker-compose.yaml and start all the docker-compose nodes:
Access: https://gerrit.x.internal