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.