Because I clean everything up that's not explicitly on disk on restart:
[Unit]
Description=Immich in Docker
After=docker.service
Requires=docker.service
[Service]
TimeoutStartSec=0
WorkingDirectory=/opt/immich-docker
ExecStartPre=-/usr/bin/docker compose kill --remove-orphans
ExecStartPre=-/usr/bin/docker compose down --remove-orphans
ExecStartPre=-/usr/bin/docker compose rm -f -s -v
ExecStartPre=-/usr/bin/docker compose pull
ExecStart=/usr/bin/docker compose up
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
Yup. Everything is in one place and there's no hardcoded paths outside of the work dir making it trivial to move across storage or even machines.