Jump to content

[Plugin] Docker Compose Manager


Recommended Posts

On 5/9/2022 at 1:56 AM, primeval_god said:

Support for specifying WebUI and Icons via docker labels is coming i believe in unRAID 6.10. Likewise i plan on adding some functionality to this plugin to support automatically inserting the necessary labels into compose files.

 

Welp, the menu I have been skipping over the whole time was the one thing I was about to come ask about. Works fantastic. Have switched every single one of my docker containers over to compose (with help of Composerize).

 

Edit:

 

I notice only .png are working for the icons. Using an .svg displays a blank icon. This differs from Docker Folders which accepts both. Is this intentional?

Edited by Lebowski89
Link to comment
7 hours ago, Lebowski89 said:

I notice only .png are working for the icons. Using an .svg displays a blank icon. This differs from Docker Folders which accepts both. Is this intentional?

That is a Dockerman question. The compose plugin only assigns the labels to the containers. Unraid's builtin Dockerman is what actually reads the label and caches/displays the icon.

  • Like 1
Link to comment

i've searched in the thread but can't really find it addressed too much but how do people go about mass updating their containers? i understand that the update stack button works and is great but its a bit cumbersome when you have to do that 30-40 times, rather than a single button press

what solutions have people come to, to automate this? or is this something that could be added natively to the plugin?

edit: seems watchtower is the solution that is posited in the previous page so i'll give that a shot

Edited by mrpops2ko
Link to comment

Getting some label UI oddities here and there. For example, with Traefik, I've put the correct URL (http://192.168.##.##:port) in the Web UI column but it opens the localhost IP without a port. Then for Whisparr the WebUI is also correct, but when you open it the IP you've entered is doubled (http://192.168.##.##/192.168.##.##:port). Have tried stack down, up, updated, deleted containers, etc.

 

 

 

Link to comment
5 hours ago, Lebowski89 said:

Getting some label UI oddities here and there. For example, with Traefik, I've put the correct URL (http://192.168.##.##:port) in the Web UI column but it opens the localhost IP without a port. Then for Whisparr the WebUI is also correct, but when you open it the IP you've entered is doubled (http://192.168.##.##/192.168.##.##:port). Have tried stack down, up, updated, deleted containers, etc.

The changes you are making are likely not taking effect. There is a long standing issue with how dockerman handles the webui and icon labels. Basically it caches them the first time a container is seen and subsequent changes dont have an effect. Try restarting your server, that may fix the webui label issues.

  • Like 1
Link to comment
10 hours ago, kiwijunglist said:

This doesn't seem to be available anymore under community apps.

 

I installed using docker-compose-manager plugin.

 

Add new stack, name it vorta.

Is there a question here? I dont really understand the post. 

Link to comment
10 hours ago, primeval_god said:

Is there a question here? I dont really understand the post. 

 

Hi sorry, It looks like I posted in the wrong thread.  Vorta is no longer available in community apps.  I meant to post that in the vorta-docker thread.  Sorry.

Link to comment

After deploying docker-compose using the plugin, when a container has an update, when I update the container using the compose plugin, there is still a constant update reminder in the webui docker interface. The only solution I currently feel is to down from the plugin interface, then delete the container, and then open the prompt to update the project. Automatically start and restart NAS

Link to comment

So I'm having issues displaying the custom network name in the docker containers tab. It will only show me the ID. I found a thread discussing this particular issue on the forums. Is that something that has to do with unraid or the plugin? Is it something that could be fixed in the future or is there a solution maybe?

Link to comment
Posted (edited)
4 hours ago, unraid_fk34 said:

So I'm having issues displaying the custom network name in the docker containers tab. It will only show me the ID. I found a thread discussing this particular issue on the forums. Is that something that has to do with unraid or the plugin? Is it something that could be fixed in the future or is there a solution maybe?

The issue is with unRAID not this plugin. Last I was aware there was an open PR fixing the issue.

Edited by primeval_god
Link to comment
15 hours ago, pteromyini said:

Is there any way to modify it? As a person with obsessive-compulsive disorder, it is very uncomfortable to see it

This was driving me crazy as well. It's quite convenient to rely on the container update checks to determine when to update the compose stacks.

 

From what I could gather the file /var/lib/docker/unraid-update-status.json holds the update status for the images. When there is no template for a container that data is never updated and gets stale. It should be fixed at some point but for now you can delete that file and "Check for Updates" in the webui to force a recheck.

Edited by dlawisch
typo
Link to comment
On 4/18/2024 at 4:41 AM, dlawisch said:

This was driving me crazy as well. It's quite convenient to rely on the container update checks to determine when to update the compose stacks.

 

From what I could gather the file /var/lib/docker/unraid-update-status.json holds the update status for the images. When there is no template for a container that data is never updated and gets stale. It should be fixed at some point but for now you can delete that file and "Check for Updates" in the webui to force a recheck.

Here's my PR:

https://github.com/dcflachs/compose_plugin/pull/27

 

This uses the existing functionality from the built in docker manager to do a check on compose manager stacks when they're run/updated and also has a manual check button.

 

Fairly easy to modify your local server to try it out.  Edit the files in /usr/local/emhttp/plugins/compose.manager as per the commits.  If it's no good for you, revert by updating the compose manager plugin.

 

Also this PR to "remove" update links for non DockerMan containers:

https://github.com/unraid/webgui/pull/1582

This is a slightly different issue.  The update link/button doesn't actually work for non DockerMan containers.  This PR replaces those buttons with an update available message instead, leaving the update functionality to whatever is managing the container.

 

Here's a gist for a User Script (get it from unRaid Community Apps).  It allows you to call useful Docker Compose Manager functions via user script.  These can be scheduled (note that if using a schedule, the defauts set at the top of the script will run).

https://gist.github.com/mtongnz/f3ca13c7ff8472e54bbb7ff8cec265e1

This means you could set updates to automatically run on certain stacks if you wanted, or you can restart troublesome stacks (I called this down_up as that's what it actually is doing).

I use it to start my stacks in a certain order when the array starts.

 

 

Comments on these would be appreciated.

 

 

Edited by mtongnz
Add second PR & GIST
  • Upvote 1
Link to comment
On 4/16/2024 at 9:10 PM, unraid_fk34 said:

So I'm having issues displaying the custom network name in the docker containers tab. It will only show me the ID. I found a thread discussing this particular issue on the forums. Is that something that has to do with unraid or the plugin? Is it something that could be fixed in the future or is there a solution maybe?

Here's my PR to the unRaid webGUI git:  https://github.com/unraid/webgui/pull/1616

 

It changes how networks, IPs and ports are displayed.

 

Give it a try and let me know any thoughts

Link to comment
On 4/16/2024 at 4:10 AM, unraid_fk34 said:

So I'm having issues displaying the custom network name in the docker containers tab. It will only show me the ID. I found a thread discussing this particular issue on the forums. Is that something that has to do with unraid or the plugin? Is it something that could be fixed in the future or is there a solution maybe?

I was able to fix this on my unRAID server. Iirc the fix was to not use external networks, and instead let docker-compose create the networks my stack needed. My networks block:
 

########################### NETWORKS
networks:
  default:
    driver: bridge
  reverse_proxy:
    external: false
    name: reverse_proxy
    ipam:
      config:
        - subnet: ${REVERSE_PROXY_SUBNET}
          gateway: ${REVERSE_PROXY_GATEWAY}
  socket_proxy:
    external: false
    name: socket_proxy
    ipam:
      config:
        - subnet: ${SOCKET_PROXY_SUBNET}
          gateway: ${SOCKET_PROXY_GATEWAY}
  lan_ipvlan:
    external: false
    name: lan_ipvlan
    driver: ipvlan
    driver_opts:
      parent: br0
    ipam:
      config:
        - subnet: ${LAN_IPVLAN_SUBNET}
          gateway: ${LAN_IPVLAN_GATEWAY}
          ip_range: ${LAN_IPVLAN_IP_RANGE}

 

Link to comment
  • 3 weeks later...
Posted (edited)
On 4/20/2024 at 2:34 AM, mtongnz said:

Here's my PR to the unRaid webGUI git:  https://github.com/unraid/webgui/pull/1616

 

It changes how networks, IPs and ports are displayed.

 

Give it a try and let me know any thoughts

Oh I just saw this. Thanks! I just checked out the PR. As I understand it I have to replace both or edit with the new lines the two files DockerClient.php and DockerContainers.php. Could you maybe tell me where I can find them? I have code-server running but can also do it in the CLI with nano. While when I replace the files I just have to refresh the webgui and everything will show up correctly?

Edit: I think I found it after some more searching. It is under /usr/local/ right?

 

Edit: This worked beautifully. Thank you for the work! Also I'm no expert in CLI but how can I select all and delete when nano inside. I just held ^K to cut out every line and then pasted in the updated file. There is certainly a better way.

Edited by unraid_fk34
Link to comment
On 2/16/2022 at 6:35 AM, primeval_god said:

The primary purpose of this plugin is to provide a convenient way to install docker compose on unRAID. With this plugin installed docker compose is available through the command line. The ability to create and manage compose stacks via the web ui is still very much a work in progress.

As it is stands the plugin gui will not display or manage arbitrary compose stacks running on unRAID, only those that are created with the plugin gui itself. Additionally the currently implemented features are mostly about control of the stack, there is not really anything displayed about the status of running stacks yet.

Its been 2.5 years.  Has anything new changed?  I updated this plugin and I still dont see anything. 

So I have to make a stack through the GUI instead of using the Docker-Compose command through command line?  What are my migration steps to do this?

All my files for Jitsi are in /mnt/disks/NVME/appdata/jitsi\github\docker-jitsi-meet but the Stack I made with this GUI is pointing to (/boot/config/plugins/compose.manager/projects/Jitsi) .Do I have to move all the files in there?  This is on the boot stick tho. 

Maybe Im still confused as to what this plugin actually does?

Link to comment
34 minutes ago, 007craft said:

So I have to make a stack through the GUI instead of using the Docker-Compose command through command line?  What are my migration steps to do this?

Create a stack, Edit Compose File, paste the contents of your compose file, edit env, paste the contents of the env file, get rid of the original repo since it's not used.

Link to comment
7 hours ago, 007craft said:

Its been 2.5 years.  Has anything new changed?  I updated this plugin and I still dont see anything. 

There are no plans to support compose stacks other than those created through the webui.

 

7 hours ago, 007craft said:

All my files for Jitsi are in /mnt/disks/NVME/appdata/jitsi\github\docker-jitsi-meet but the Stack I made with this GUI is pointing to (/boot/config/plugins/compose.manager/projects/Jitsi) .Do I have to move all the files in there?  This is on the boot stick tho. 

The default location for stacks created via this plugin is on the flash drive. That default can be changed via the settings screen, or when creating a new stack there is an option to specify where it should be created.

 

7 hours ago, 007craft said:

Maybe Im still confused as to what this plugin actually does?

This plugin provides a webui for people to create and manage simple compose stacks on unRAID. It exists primarily because unRAID's Dockerman lacks easy support for multi-container applications. It is not meant to be a full fledged, all features included compose interface. As such its not really geared for large, complex off the shelf compose projects you might want to pull down for github, but rather simple single compose file projects. For a full fledged compose experience i would recommend something like Portainer.

Link to comment

not sure if this needs posted here or g eneral...

Using docker compoase:
image.png.1331013f2d212e280c0505028b80fab0.png

I see that some dockers need to be updated.
Normally I see:
image.png.43d8d94907181e59ac0bcf505c831b3d.png
When i attempted to update the docker I get:
image.png.d1ddcf2ac18b4964278e43584af528a3.png

I have found that i have to delete the docker image from the docker tap and run docker compsue up to get the updated docker.

Most sure where unraid nor the compose plugin finds the update and how to apply manuly without losing data in docker


I could turn them into actual unraid docker now that i have the compose components out of the way and working. Thought the docker ps update command would work but no go.


Thoughts or idea or thing to do to keep them up to date?

Link to comment
2 hours ago, bmartino1 said:

Thoughts or idea or thing to do to keep them up to date?

Just ignore the "update ready" text for containers created via compose, they are not correct. The update tracking feature of the webui does not apply to containers not created via the webui. If you believe there is an update available for a container created with the compose plugin, there is an update stack button on the compose page you can click. 

  • Like 1
Link to comment
10 hours ago, primeval_god said:

Just ignore the "update ready" text for containers created via compose, they are not correct. The update tracking feature of the webui does not apply to containers not created via the webui. If you believe there is an update available for a container created with the compose plugin, there is an update stack button on the compose page you can click. 

Thank you for that information.

In my case the services the docker are running have an update but the docker image has yet to implement that server update/upgrade.

This update stack button has helped me. Also in my case using update stack kills the data in my grafana server. as it appears that graffan is saving to the docker image in temp and that gets deleted with the update. 

will need to dig in the grafa doc / imagees to place its data on disk instead of the image 

Link to comment
  • 2 weeks later...

Noob here.

 

As I understand from searching some of comments, compose file requiring the `build` command isn't supported well.

 

I'm running into issues where DCM will say it can not resolve the path.

 

`failed to solve: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount436360256/Dockerfile: no such file or directory`

 

Basically the compose file provided by the project contains `build: .`

 

I have already put my Stack in a location in pool, say it's `/user/mnt/appdata/path_a`

 

Is there a way I can change the compose file to make it work? or is this fundamentally not supported yet?

 

(The project I'm trying to get working is ViewTube, compose file here https://github.com/ViewTube/viewtube/blob/development/docker-compose.yml )

 

Thanks!

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...