Um container com bind num disco USB que cai fica segurando o storage morto e cospe erro por horas. Dá para amarrar o serviço à montagem: cai o mount, cai o serviço; volta o mount, volta o serviço.
# meuapp.service
[Unit]
RequiresMountsFor=/media/external
BindsTo=media-external.mount
After=media-external.mount
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
BindsTo derruba o serviço automaticamente quando a unidade de mount fica
inativa — o ExecStop roda um down limpo em vez de deixar tudo em I/O error.
Para o outro sentido (montou → sobe o serviço), a unidade de mount precisa de um
Wants=meuapp.service.
O nome da unidade de mount vem do caminho: /media/external vira
media-external.mount. Confira com systemctl list-units --type=mount.