Hi Ralf
Danke, dies hat geholfen.
Eine anderes Lösung wäre in der docker.service Unit folgendes einzufügen:
Requires=mariadb.service
Dies hat nicht funktioniert, frag mich nicht warum - in der Theorie wäre dies schon der passende Ort.
Es hat nur funktioniert, wenn ich es hier eingefügt habe.
After=mariadb.service
Evtl. hilft der Script im Anschluss an die Installation. Dies identifiziert ob mariadb auf dem Host gefunden wird, und falls ja, dann fügt es die Option in /etc/systemd/system/multi-user.target.wants/docker.service
ein. Halt sehr rudimentär, kann sicherlich noch verbessert werden.
#!/bin/bash
SVC_CHECK=mariadb
DKR_START=/etc/systemd/system/multi-user.target.wants/docker.service
if [ `systemctl status ${SVC_CHECK} | grep "${SVC_CHECK}.service could not be found" | wc -l` -gt 0 ]
then
echo "- ${SVC_CHECK} not present"
else
echo "- ${SVC_CHECK} present"
if [ -f "${DKR_START}" ]
then
if [ `cat ${DKR_START} | grep "${SVC_CHECK}.service" | wc -l` -gt 0 ]
then
echo "-- ${DKR_START} exist - dependency already present"
else
echo "-- ${DKR_START} exist - apply dependency"
OUTPUT=`sed "/After=network.target/ s/\$/ ${SVC_CHECK}.service/" ${DKR_START}`
echo "${OUTPUT}" > ${DKR_START}
fi
else
echo "-- ${DKR_START} does not exist - exit"
fi
fi
Hinweis: Wenn du mit After= arbeitest, dann startet der Docker Service auch wenn mariadb disabled wäre (und vermutlich auch, wenn mariadb gar nicht installiert wäre).
Update: Wie xenolevis schrieb: War reproduzierbar.
Gruss
Tom