I'm a little new to the nuances of how licensing of software can propagate/affect other pieces of software so sorry if there's anything in the question that doesn't make sense.
Basically though, I'm trying to package up some software that is MIT licensed that has dependencies that are mixed licensed (I think it's a couple GPL dependencies and some MIT/BSD dependencies) into a more easily deployable solution (Docker).
I see my options as:
Put commands for installing dependencies into the Dockerfile but have users build the image themselves (instead of pushing built images to an image repo). I think I've seen online that this is okay, but this isn't ideal for us because our clients won't always be familiar with Docker and how to run things themselves.
Write an install script and have it as a part of a container's startup process at runtime. This is okay for us, but it adds some overhead to spinning up new containers (which we'll be running as scalable workers, so this isn't ideal as they'll be coming up/winding down often).
Bake the dependencies into an image and push this image to a public image repository. This is ideal for us, but sounds closest to the language of "distribution", which is a bit spooky to me!
I guess I'm wondering, are there any differences from a licensing perspective between 2 and 3? If so, what are they? Will either 2 or 3 be incompatible with our desire to keep the source code for our binary MIT licensed? Are there other solutions that I've overlooked?