Is it possible to inherit declarations from one Docker-Compose.yaml to another?
I just installed Immich and while all my other containers have just required me to add to them to existing yaml, Immich requires its own yaml. That's fine I guess, but for the library, I wanna host it on my NAS and so I made the volume in my main Docker-Compose.yaml, the Immich yaml was all like, "what you talking about Willis?" because in my Immich environment I tried to point to something created in my main yaml. I thought I could work around this by adding an empty volume declaration, but now I can't find my uploads π any idea on the correct methodology/workaround?
You cannot reference a part of a docker-compose file from another, but you can have an .env file alongside them where you can declare variables in the format NAME=VALUE, and reference that in the dc files with ${NAME}, assuming your dc files reside alongside each other (with different names) and the .env file itself. I have done this before.
I cannot say if that will work for your use case, as I haven't tried to use the same docker volume in different containers. I don't even know if that is possible, given the possibility of conflicts if both containers tried to access the same files, something to test out, for sure.
It doesn't seem to work, as a result, I decided to just add the storage to the Immich yaml, but it's saying that there's an unknown variable still. I'm guessing that's because the environment file doesn't know of the storage. I don't suppose you know how to declare storage in an ENV do you?
I use a similar mechanism to enable my media acquisition stack to grab completed files and store them in their permanent location.
Edit: you can just use the same volume in both containers at the same time, but you'd typically use an NFS mount or something if / when you try and scale this out. You probably just got the volume definition a little off (or need to create it outside both containers definitions and use it there)