Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Fix to a small issue with updating OCI docker images

Featured Replies

Hello,

 

I came across a small issue regarding the version status of an image that apparently was in OCI format. Unraid wasn't able to get the manifest information file because of wrong headers. As a result, checking for updates showed "Not available" instead. The docker image is the linuxGSM docker container and the fix is really simple. 

 

This is for Unraid version 6.11.5 but it will work even for older versions if you find the corresponding line in that file.

 

SSHing into the Unraid server, in file:

/usr/local/emhttp/plugins/dynamix.docker.manager/include/DockerClient.php

change line 448 to this:

$header = ['Accept: application/vnd.docker.distribution.manifest.list.v2+json,application/vnd.docker.distribution.manifest.v2+json,application/vnd.oci.image.index.v1+json'];

And the version check worked after that.

 

I suppose this change will be removed upon server restart but it will be nice if you can include it on the next Unraid update 😊

 

Thanks

 

Edited by m33ts4k0z

  • m33ts4k0z changed the title to Fix to a small issue with updating OCI docker images
  • Replies 144
  • Views 64.2k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • HIGHLY recommended to NOT patch your docker files manually and instead use the plugin.  Patching manually means that if / when you update the OS to 6.12 any manually patches that you are applying auto

  • I have included your update for the next Unraid version. Thanks  

  • The plugin will not install on 6.12+, so it's a install once, forget about it completely and you're safe going forward

Posted Images

confirmed this fixed issue i had with "netdata-glibc" saying not available when there was an update. (unraid: 6.11.5)

Edited by zoggy

This worked for me too.

This finally fixed this annoying problem for me, thanks!

I get Permission denied when I SSH in and try to access that file. How do I get access to the file?

 

38 minutes ago, SnugglyDino said:

I get Permission denied when I SSH in and try to access that file. How do I get access to the file?

I used the Unraid terminal to change to the correct directory then used the nano text editor to update the file. 

On 1/21/2023 at 11:14 AM, m33ts4k0z said:

SSHing into the Unraid server, in file:

/usr/local/emhttp/plugins/dynamix.docker.manager/include/DockerClient.php

change line 448 to this:

$header = ['Accept: application/vnd.docker.distribution.manifest.list.v2+json,application/vnd.docker.distribution.manifest.v2+json,application/vnd.oci.image.index.v1+json'];

And the version check worked after that.

 

Could you post what line 448 looks like prior to the above update?  I'm running 6.9.2 and I'm wanting to make sure I'm touching the correct line.  My current line 448 reads:

$reply_json = json_decode($reply, true);

 

Seems like a really radical update if that's what I'm supposed to be replacing.

 

More and more of my dockers have gone "not available" in the past week, for reasons I'm unaware of.  I'm hoping that this might fix it.  TIA

ETA: I'm also not opposed to upgrading to 6.10 or 6.11 if one or the other will resolve this.  Thx again.

Edited by kcgodwins

8 minutes ago, t34wrj said:

 

I used the Unraid terminal to change to the correct directory then used the nano text editor to update the file. 

I still get permission denied. It's really weird.

image.png.ea6e5d39d032132278ccd20741725cbb.png

  • Author
11 minutes ago, kcgodwins said:

 

Could you post what line 448 looks like prior to the above update?  I'm running 6.9.2 and I'm wanting to make sure I'm touching the correct line.  My current line 448 reads:

$reply_json = json_decode($reply, true);

 

Seems like a really radical update if that's what I'm supposed to be replacing.

 

More and more of my dockers have gone "not available" in the past week, for reasons I'm unaware of.  I'm hoping that this might fix it.  TIA

ETA: I'm also not opposed to upgrading to 6.10 or 6.11 if one or the other will resolve this.  Thx again.

This is for Unraid version 6.11.5. the line looks the same but without the

,application/vnd.oci.image.index.v1+json'

Im not sure how this line looks like on 6.10 but if you could find:

$header = ['Accept: application/vnd.docker.distribution.manifest.list.v2+json,application/vnd.docker.distribution.manifest.v2+json'];

Just append it after:

 

,application/vnd.docker.distribution.manifest.v2+json

 

  • Author
12 minutes ago, SnugglyDino said:

I still get permission denied. It's really weird.

image.png.ea6e5d39d032132278ccd20741725cbb.png

The command you need is as follows:

nano /usr/local/emhttp/plugins/dynamix.docker.manager/include/DockerClient.php

 

You can also use WinSCP if you are on Windows. Choose SCP protocol and connect to the same port as SSH.

Edited by m33ts4k0z

14 minutes ago, m33ts4k0z said:

The command you need is as follows:

nano /usr/local/emhttp/plugins/dynamix.docker.manager/include/DockerClient.php

 

You can also use WinSCP if you are on Windows. Choose SCP protocol and connect to the same port as SSH.

Thank you. I can finally update my docker containers now!

Edited by SnugglyDino

On 1/21/2023 at 10:14 AM, m33ts4k0z said:

Hello,

 

I came across a small issue regarding the version status of an image that apparently was in OCI format. Unraid wasn't able to get the manifest information file because of wrong headers. As a result, checking for updates showed "Not available" instead. The docker image is the linuxGSM docker container and the fix is really simple. 

 

This is for Unraid version 6.11.5 but it will work even for older versions if you find the corresponding line in that file.

 

SSHing into the Unraid server, in file:

/usr/local/emhttp/plugins/dynamix.docker.manager/include/DockerClient.php

change line 448 to this:

$header = ['Accept: application/vnd.docker.distribution.manifest.list.v2+json,application/vnd.docker.distribution.manifest.v2+json,application/vnd.oci.image.index.v1+json'];

And the version check worked after that.

 

I suppose this change will be removed upon server restart but it will be nice if you can include it on the next Unraid update 😊

 

Thanks

 

 

The Unraid webgui is actually open source, since you found the solution if you are interested you can submit a PR here:

  https://github.com/limetech/webgui

 

Thank you! Can confirm this solved the problem for me (6.11.5)

Thanks for sharing!

Thank you for posting this it fixed it for me this was really bugging me, I thought it was my pi-hole.

Good catch, I also saw there was an issue since June 2022.

 

I hope you dont mind but I opened the MR and also added some references.

 

Thank you to figued out!

Edited by fabricionaweb

On 1/21/2023 at 11:14 AM, m33ts4k0z said:

Hello,

 

I came across a small issue regarding the version status of an image that apparently was in OCI format. Unraid wasn't able to get the manifest information file because of wrong headers. As a result, checking for updates showed "Not available" instead. The docker image is the linuxGSM docker container and the fix is really simple. 

 

This is for Unraid version 6.11.5 but it will work even for older versions if you find the corresponding line in that file.

 

SSHing into the Unraid server, in file:

/usr/local/emhttp/plugins/dynamix.docker.manager/include/DockerClient.php

change line 448 to this:

$header = ['Accept: application/vnd.docker.distribution.manifest.list.v2+json,application/vnd.docker.distribution.manifest.v2+json,application/vnd.oci.image.index.v1+json'];

And the version check worked after that.

 

I suppose this change will be removed upon server restart but it will be nice if you can include it on the next Unraid update 😊

 

Thanks

 

 

THANK YOU!!! just the answer I was looking for!

  • Author
2 hours ago, fabricionaweb said:

Good catch, I also saw there was an issue since June 2022.

 

I hope you dont mind but I opened the MR and also added some references.

 

Thank you to figued out!

Thanks for this. You saved me some time. The PR is already accepted and the fix is applied on github.

10 minutes ago, m33ts4k0z said:

Thanks for this. You saved me some time. The PR is already accepted and the fix is applied on github.

Will it be updated with unraid or with AppStore plug-in thing in unraid?

  • Author
2 minutes ago, blaine07 said:

Will it be updated with unraid or with AppStore plug-in thing in unraid?

 

It will be updated when the next core update for Unraid releases. Unraid is currently on version 6.11.5. The next version will most likely include this fix.

On 1/21/2023 at 6:14 PM, m33ts4k0z said:

I suppose this change will be removed upon server restart but it will be nice if you can include it on the next Unraid update

 

I have included your update for the next Unraid version.

Thanks

 

Can confirm that this worked for me. Thanks for providing the fix.

On 1/23/2023 at 1:48 PM, m33ts4k0z said:

This is for Unraid version 6.11.5. the line looks the same but without the

,application/vnd.oci.image.index.v1+json'

Im not sure how this line looks like on 6.10 but if you could find:

$header = ['Accept: application/vnd.docker.distribution.manifest.list.v2+json,application/vnd.docker.distribution.manifest.v2+json'];

Just append it after:

 

,application/vnd.docker.distribution.manifest.v2+json

 

 

Thanks, I'll take a look at it.

 

Do you (or anyone) know why this has become an issue all of a sudden?  Just curious.

Thanks again.

Mike

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...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.