graylog: improve JRE handling

Since the upstream graylogctl script will prefer finding its java
executable based on JAVA_HOME, we now set this instead of PATH in
order to allow it to find the JRE. By setting it conditionally on it
not already being set, we allow selecting a different JRE at runtime.

We also explicitly use openjdk11, which supports the
UseConcMarkSweepGC option which graylog insists on using.
This commit is contained in:
Linus Heckemann 2021-03-27 17:51:43 +01:00
parent d3f7e969b9
commit 22de3c19e7
2 changed files with 4 additions and 6 deletions

View file

@ -39,7 +39,6 @@ in
type = types.package;
default = pkgs.graylog;
defaultText = "pkgs.graylog";
example = literalExample "pkgs.graylog";
description = "Graylog package to use.";
};
@ -138,14 +137,13 @@ in
"d '${cfg.messageJournalDir}' - ${cfg.user} - - -"
];
systemd.services.graylog = with pkgs; {
systemd.services.graylog = {
description = "Graylog Server";
wantedBy = [ "multi-user.target" ];
environment = {
JAVA_HOME = jre;
GRAYLOG_CONF = "${confFile}";
};
path = [ pkgs.jre_headless pkgs.which pkgs.procps ];
path = [ pkgs.which pkgs.procps ];
preStart = ''
rm -rf /var/lib/graylog/plugins || true
mkdir -p /var/lib/graylog/plugins -m 755

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, makeWrapper, jre_headless, nixosTests }:
{ lib, stdenv, fetchurl, makeWrapper, openjdk11_headless, nixosTests }:
stdenv.mkDerivation rec {
pname = "graylog";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
dontStrip = true;
nativeBuildInputs = [ makeWrapper ];
makeWrapperArgs = [ "--prefix" "PATH" ":" "${jre_headless}/bin" ];
makeWrapperArgs = [ "--set-default" "JAVA_HOME" "${openjdk11_headless}" ];
passthru.tests = { inherit (nixosTests) graylog; };