
Dieser Fehler tritt auch nach dem Löschen des Docker-Image-Cache auf:
$ docker run -it --rm mariadb:10.8.3
2022-06-15 11:28:14+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.8.3+maria~jammy started.
2022-06-15 11:28:14+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
command was: mariadbd --verbose --help --log-bin-index=/tmp/tmp.EUcxIEz4Yz
Can't initialize timers
10.8.3 ist derzeit das latest
Image auf Docker Hub. Der Image-Tag ist ea81af801379
. Dies ist auf 64-Bit Ubuntu 18.04. Der Server hat eine geringe CPU-Auslastung, 100+GB freien RAM und Terabyte an freiem Festplattenspeicher.
Ich habe eine vorhandene Datenbank, die bereits von dieser Version berührt wurde, und bei der ich kein Downgrade riskieren möchte.
Ich habe gesehendieses Problemaber es gibt keinen Grund, warum MariaDB bei der Erstellung eines Threads scheitern sollte.
Wie kann ich das lösen?
Antwort1
Die Lösung besteht darin, die MariaDB-Version zu ändern aufvermeidenVersion 10.8.3
, zum Beispiel durch Erzwingen mariadb:10.8.2
oder mariadb:10.7
, oder zum Setzen--security-opt seccomp=unconfined
mariadb:latest
Wenn Ihr Dockerfile oder Docker-Compose auf oder im Sommer 2022 verweist mariadb:10
, deutet dies auf mariadb:10.8.3
.
Im Gegensatz zu dem Beitrag von @Arno ist die Docker-Version nicht das Problem. Ich verwende Docker 20.10.17
und das Problem besteht weiterhin.
Sie können es auch direkt mit einem aktualisierten Sicherheitsprofil ausführen:
docker run --security-opt seccomp=/etc/docker/profiles-seccomp-scmp-act-trace.json
Hoffentlich wird in der MariaDB-Version ein Fix enthalten sein 10.8.3
.
Antwort2
Das Problem wurde gemeldetauf GitHub. Ein Upgrade von Docker scheint das Problem zu beheben.
Antwort3
Ich hatte das gleiche Problem beim Ausführen von MariaDB ( latest
) auf Gitlab CI mitTestbehälterfür Java.
Die Verwendung der seccomp=unconfined
Sicherheitsoption – wie im von @Arno verlinkten Github-Bericht beschrieben – hat dieses Problem für mich gelöst.
Dies zu aktivieren testcontainers-java
ist ein bisschen seltsam, daher hier der Ablauf, falls Leser auf dasselbe Problem mit Test Containes stoßen:
var container = new MariaDBContainer<>("mariadb:latest")
.withCreateContainerCmdModifier(cmd -> {
var cfg = cmd.getHostConfig();
List<String> seclist = Objects.requireNonNullElseGet(cfg.getSecurityOpts(),
LinkedList::new);
seclist.add("seccomp=unconfined");
cfg.withSecurityOpts(seclist);
});
Antwort4
Dieselbe Frage wurde auf StackOverflow gestellt. Bitte lesen Sie dort meine Antwort.https://stackoverflow.com/a/72467817
Zusammenfassend lässt sich sagen, dass Ihre Docker-Version wahrscheinlich < 20.10.10 ist, was die Mindestanforderung für die Verwendung von Jammy-basierten Images ist. MariaDB > 10.8.2 verwendet Jammy, daher besteht hier ein Konflikt.
Ein Upgrade von Docker ist zum jetzigen Zeitpunkt wirklich die einzig richtige Option – der Support für MariaDB 10.7 endet bald am 14.02.2023 und Docker 19.03 (die Version vor 20.10) wurde am 21.07.2021 eingestellt.