There are a few Docker projects I haven’t been able to properly implement in my homelab, only because their images need to be user-compiled and Dockge doesn’t seem to have an option to include the entire repository required for the project compilation in its interface or in the stacks directory. I know I could just host them in a separate directory but I would like my services to be manageable from a single place and following this approach isolates the service from being controlled from Dockge.
Is there some workaround or a solution for this I am unaware of? I initially thought I could deploy Coolify within Dockge and store the applications under it but apparently Coolify is meant to work on its own and I fear running both Coolify and Dockge will break stuff.
Afaik, Dockge is just a front end for docker compose. So simply tagging your build (preferably with someone systematic like “local/name of software”) and using that as image name should work. Or just using directly the build command of compose.
Komodo handles this better. I dont use it, but i did spend a week trying it out. You can add repositories and run builds on them then use those in a stack
I’ll admit I don’t use dockge, so it’s possible I’m misunderstanding…
But I think if you have a source folder on the box, separate from the one you keep your compose files in, you can run:
docker build -t someName:someVersion .and that will build the image. Then in your normal docker compose folder you just specify the image as matching whatever you built it as, and docker won’t pull images it already has, so it’ll just use the one you already built.
So yeah this source folder is different from the compose folder, but you don’t have source folders for all the stuff you didn’t build, so this shouldn’t really be that different. And the compose part doesn’t care where the images came from once you have them.
I might even recommend naming it or tagging it with your name or something similarly identifiable, like ‘local/whatever’ so that 18-month-from-now-you will remember you built this one locally and to update it yourself from source, rather than being like “where the hell did this come from and why can’t I find it now!? Did they remove the repo? Why!?”
As far as I know, Dockge, Portainer, Coolify, etc. can have different stacks folders, and they will not show, warn you or not let you manage stacks outside their designated paths.
For your main question, it is possible to build your image on the same system, you would need at least terminal access to do so, and then use the local image with docker compose or Dockge or other, you just would need to reference its image name instead of a URL (to differentiate images I build I prefix their name with local as ‘local/service-name’), and it would not pull from anywhere but use the one you already built, you could do it on any folder on the system or inside the stacks folder you have with Dockge
If you do it on Dockge’s stack folder, create a folder for your service, with a
docker-compose.ymlfile inside (with just this it will appear in Dockge), then pull the repository on this folder, and make sure you have the properDockerfileto build the image, you can then either build the image first or reference theDockerfileon yourdocker-compose.yml. This way when you dodocker compose upor in Dockge you press theStartbutton, it will build the image with the Dockerfile and use it, if it doesn’t find the image.The other option I know is to have a local image registry (I have done this with Forgejo), so pull the repository on any folder on your system, build it and push it to your local registry, and then just use the local registry URL on your docker-compose-yml

