在docker容器中安装gerrit插件
运行在docker容器中安装gerrit插件,docker,gerrit,Docker,Gerrit,运行gerritcodereview/gerritdocker容器时。Gerrit安装在容器中的directoy中。但是,当尝试通过从下载到/var/gerrit/plugins目录的plugin.jar文件安装插件时,插件不会显示在已安装插件的列表中。即使我重新启动了容器 我与gerrit合作: docker run -ti -p 8080:8080 -p 29418:29418 gerritcodereview/gerrit Gerrit可通过以下途径访问: 我在插件管理器中也有一个插件
gerritcodereview/gerrit
docker容器时。Gerrit安装在容器中的directoy中。但是,当尝试通过从下载到/var/gerrit/plugins
目录的plugin.jar文件安装插件时,插件不会显示在已安装插件的列表中。即使我重新启动了容器
我与gerrit合作:
docker run -ti -p 8080:8080 -p 29418:29418 gerritcodereview/gerrit
Gerrit可通过以下途径访问:
我在插件管理器中也有一个插件列表,但不知道如何向列表中添加更多插件,我尝试在[httpd]中使用gerrit-ci.gerritforge.com url
我的gerrit.config
文件如下所示:
[gerrit]
basePath = git
serverId = 62b710a2-3947-4e96-a196-6b3fb1f6bc2c
canonicalWebUrl = http://10033a3fe5b7
[database]
type = h2
database = db/ReviewDB
[index]
type = LUCENE
[auth]
type = DEVELOPMENT_BECOME_ANY_ACCOUNT
[sendemail]
smtpServer = localhost
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = http://*:8080/
filterClass = com.googlesource.gerrit.plugins.ootb.FirstTimeRedirect
firstTimeRedirectUrl = /login/%23%2F?account_id=1000000
[cache]
directory = cache
[plugins]
allowRemoteAdmin = true
[container]
javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
user = gerrit
javaHome = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre
javaOptions = -Djava.security.egd=file:/dev/./urandom
[receive]
enableSignedPush = false
[noteDb "changes"]
autoMigrate = true
我非常确定Gerrit是从
/var/Gerrit
运行的,即使对于您的版本也是如此,因为这是我以前使用的版本
为什么不将docker compose与自定义Dockerfile一起使用呢。通过这种方式,您可以轻松地重新创建图像,并且不必担心在升级版本后再次添加插件
我建议您使用这些脚本并将其用于测试
这是我以前安装的2.16版Dockerfile的外观:
FROM gerritcodereview/gerrit:2.16.8
# Add custom plugins that are not downloaded from the web
COPY ./plugins/* /var/gerrit/plugins/
# Add logo
COPY ./static/* /var/gerrit/static/
ADD https://gerrit-ci.gerritforge.com/view/Plugins-stable-2.16/job/plugin-avatars-gravatar-bazel-master-stable-2.16/lastSuccessfulBuild/artifact/bazel-genfiles/plugins/avatars-gravatar/avatars-gravatar.jar /var/gerrit/plugins/
USER root
# Fix any permissions
RUN chown -R gerrit:gerrit /var/gerrit
USER gerrit
ENV CANONICAL_WEB_URL=https://gerrit.mycompoany.net/r/
在docker-compose.yml下面
version: '3.4'
services:
gerrit:
build: .
ports:
- "29418:29418"
- "8080:8080"
restart: unless-stopped
volumes:
- /external/gerrit2.16/etc:/var/gerrit/etc
- /external/gerrit2.16/git:/var/gerrit/git
- /external/gerrit2.16/index:/var/gerrit/index
- /external/gerrit2.16/cache:/var/gerrit/cache
- /external/gerrit2.16/logs:/var/gerrit/logs
- /external/gerrit2.16/.ssh:/var/gerrit/.ssh
# entrypoint: java -jar /var/gerrit/bin/gerrit.war init --install-all-plugins -d /var/gerrit
# entrypoint: java -jar /var/gerrit/bin/gerrit.war reindex -d /var/gerrit
终于在我的用例中找到了一种适合我的方法
关于gerrit目录,你是对的。当前gerrit有一些重要的回购协议。不确定如果使用新映像升级,是否会丢失数据。我以前没做过。
eval `ssh-agent`
ssh-add .ssh/id_rsa
ssh -p 29418 my_gerrit_admin_username@localhost gerrit plugin install -n its-base.jar https://gerrit-ci.gerritforge.com/job/plugin-its-base-bazel-stable-2.16/lastSuccessfulBuild/artifact/bazel-bin/plugins/its-base/its-base.jar