Я создаю один файл: /etc/systemd/system/unmount-disks.service p>
Код: Выделить всё
[Unit]
Description=Démontage des disques externes et NAS avant arrêt
DefaultDependencies=no
Before=docker.service shutdown.target reboot.target halt.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/unmount_disks.sh
RemainAfterExit=true
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
[Install]
WantedBy=halt.target reboot.target shutdown.target
а затем /usr/local/bin/unmount_disks.sh :< /p>
Код: Выделить всё
#!/bin/bash
# Arrêter tous les conteneurs sauf GitLab Runner et Portainer Agent
for CONTAINER in $(docker ps -q); do
CONTAINER_NAME=$(docker inspect --format '{{.Name}}' $CONTAINER | sed 's/\///g')
echo "Traitement du conteneur : $CONTAINER_NAME..."
if [ "$CONTAINER_NAME" == "gitlab-runner" ] || [ "$CONTAINER_NAME" == "portainer_agent" ]; then
echo "Conteneur $CONTAINER_NAME ignoré..."
else
echo "Arrêt du conteneur $CONTAINER_NAME..."
docker stop $CONTAINER
fi
done
Но у меня такая ошибка:
Код: Выделить всё
-- Boot 0a7bed5f09ac4ab1b414124571f070cc --
oct. 06 08:23:06 cicd systemd[1]: Starting Démontage des disques externes et NAS avant arrêt...
oct. 06 08:23:07 cicd unmount_disks.sh[2979]: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.47/contai>
externes et NAS avant arrêt.
Кажется, служба докера отключается до моего сценария?
Если я запускаю скрипт под root вручную, все работает.
Подробнее здесь: https://stackoverflow.com/questions/790 ... nder-linux