wdpksrc icon indicating copy to clipboard operation
wdpksrc copied to clipboard

Update docker to latest

Open marcodallago opened this issue 1 year ago • 12 comments

Hi, thanks for all the job done.

Successfully managed to install docker 20.10.15 for OS5 by @JediNite o my EX2Ultra. Is there a chance to release the latest .bin file with latest docker available? Had a few error with some docker install since docker-compose is now deprecated.

Thanks a lot!

Cheers

marcodallago avatar May 01 '24 10:05 marcodallago

@marcodallago, that is the last build I have been able to get working. Versions after used a newer version of Debian during the build process and it never worked. The binaries generated always coredumped. Tried to find a work around but never got very far.

Check out https://github.com/WDCommunity/wdpksrc/issues/85

JediNite avatar May 13 '24 10:05 JediNite

@marcodallago, scratch what I said before. I just tried using the standard docker binaries available from https://download.docker.com/linux/static/stable/armhf/ on my EX4100 and they worked fine, so there was no need to compile them. I am not sure if this would be the same for the EX2Ultra though, but maybe worth trying.

root@WDMyCloudEX4100 docker # docker version Client: Version: 26.1.2 API version: 1.45 Go version: go1.21.10 Git commit: 211e74b Built: Wed May 8 13:59:49 2024 OS/Arch: linux/arm Context: default

Server: Docker Engine - Community Engine: Version: 26.1.2 API version: 1.45 (minimum version 1.24) Go version: go1.21.10 Git commit: ef1912d Built: Wed May 8 13:28:49 2024 OS/Arch: linux/arm Experimental: false containerd: Version: v1.7.15 GitCommit: 926c9586fe4a6236699318391cd44976a98e31f1 runc: Version: 1.1.12 GitCommit: v1.1.12-0-g51d5e94 docker-init: Version: 0.19.0 GitCommit: de40ad0

JediNite avatar May 13 '24 12:05 JediNite

Hey @JediNite thanks for the reply!! Managed to compile latest docker using this guide #https://github.com/WDCommunity/wdpksrc/issues/111#issuecomment-1360915995

At last, couldn't install immich because I discovered they ditch arm7 support. But docker works great!

marcodallago avatar May 13 '24 12:05 marcodallago

Hey @JediNite @marcodallago, So can Portainer be updated to the latest (beyond 1.24.1) on the WD MyCloudPR4100?

akanoodles avatar Jun 11 '24 18:06 akanoodles

Sure. Just run the update_portainer.sh script that is included and that should update it to the latest available on docket hub.

Get Outlook for iOShttps://aka.ms/o0ukef


From: Nural Choudhury @.> Sent: Wednesday, June 12, 2024 4:01:31 AM To: WDCommunity/wdpksrc @.> Cc: JediNite @.>; Mention @.> Subject: Re: [WDCommunity/wdpksrc] Update docker to latest (Issue #122)

Hey @JediNitehttps://github.com/JediNite @marcodallagohttps://github.com/marcodallago, So can Portainer be updated to the latest on the WD MyCloudPR4100?

— Reply to this email directly, view it on GitHubhttps://github.com/WDCommunity/wdpksrc/issues/122#issuecomment-2161327714, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADMYAD4HP6CQSHJN7NEO5A3ZG43PXAVCNFSM6AAAAABHBY4DW6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRRGMZDONZRGQ. You are receiving this because you were mentioned.Message ID: @.***>

JediNite avatar Jun 11 '24 21:06 JediNite

@JediNite @marcodallago Can you explain how I can get the latest Docker version on my Ex2 Ultra? I don't quite understand 🙈😅 I have built it using the instructions https://github.com/WDCommunity/wdpksrc/issues/111#issuecomment-1360915995 but I get the version 20.10.12 out again. Do I have to adjust something in the .sh files so that it pulls the latest Docker version and if so which ones? @JediNite What is meant by using the standard binaries? I have unpacked the latest version, but have no idea what to do with the files.

Edit: ah I see you have released 26.1.2 on your GitHub site. Thank you very much

chriss-89 avatar Jun 15 '24 07:06 chriss-89

I tried the docker_26.1.2_EX2Ultra.bin but installation fails with message "Unable to upload app package for installation. Please check your network connection and try again." Sounds like some download failed somewhere. Can we make it so that the install script in this case fakes success enough to at least be able to show a proper, actionable error message? If there is a failed download, maybe I can provide the file manually and have the script retry.

Edit: In order to "Please check your network" I tried MyCloudEX2Ultra_docker_20.10.14.bin and that one installed fine.

Edit 2: I got it to work. At least somewhat. At least for old versions of docker images. Tutorial

mk-pmb avatar Oct 26 '24 02:10 mk-pmb

I tried the docker_26.1.2_EX2Ultra.bin but installation fails with message "Unable to upload app package for installation. Please check your network connection and try again." Sounds like some download failed somewhere. Can we make it so that the install script in this case fakes success enough to at least be able to show a proper, actionable error message? If there is a failed download, maybe I can provide the file manually and have the script retry.

Edit: In order to "Please check your network" I tried MyCloudEX2Ultra_docker_20.10.14.bin and that one installed fine.

Edit 2: I got it to work. At least somewhat. At least for old versions of docker images. Tutorial

I think, its because files owner in the package are docker:docker. I make package for myself with root:root owner and all works fine

Copyrght avatar Nov 25 '24 14:11 Copyrght

Thanks for that observation! That might be helpful for others. Nonetheless I'd love to see more useful messages in case of an error.

mk-pmb avatar Nov 28 '24 19:11 mk-pmb

I was also interested in a newer version of docker, and docker compose in particular, so I took a stab:

docker compose

Modifying the install script to install the latest docker compose plugin worked perfectly, without updating docker at all, both on my pr4100 (x64) and my ex4100 (arm7l). The commit is here.

docker-x64

  • 28.0.0 and 28.0.1 almost work, but anything that requires port mapping fails, because docker relies on the system having iptables-raw, and the pr4100 (which is what I was testing on) doesn't have that.
  • backing down to 27.5.1 seems to work perfectly.

docker-arm7l

  • 27.5.1 dockerd seems to work, but this version has a runc binary that crashes on startup (appears to be the same issue that has affected various versions of dockerd), so you can't actually run a container.
  • 26.1.4 both dockerd and runc seem to work correctly, and portainer starts and runs correctly
  • many images don't work. In particular hello-world crashes on startup (just like dockerd did in certain earlier versions). I'd never run docker on my ex4100 before, so I tried the current release, and found it has the same issue.
  • I've tried to dig into why various binaries don't work, and haven't had much luck. It doesn't appear to be the previously mentioned libseccomp issue - or if it is, the previously mentioned workarounds don't work.
  • I've tried running the binary from the hello-world image directly on my ex4100, and it crashes on startup in exactly the same way. I've tried debugging it with gdb, and gdb just tells me that it crashes during startup, and after debugging that, I found that it doesn't even get to the first instruction in the binary - something in the kernel is rejecting it.
  • many images do work. arm32v7/ubuntu:bionic and everything I've tried running inside it works. arm32v7/ubuntu:latest does not.

I've split things into 3 commits: https://github.com/markw65/wdpksrc/tree/version-upgrade

I think the first commit, to add docker compose support, should be uncontroversial. It just adds the latest docker compose, it works without any other changes, and seems unlikely to break anything (I added a docker-compose script that just invokes docker compose to avoid breaking scripts).

The second commit updates to 27.5.1 for x86 and 26.1.4 for armv7l. This works at least as well as the old version for me - but I'm not a huge user of docker - so for more complex setups, maybe there are new issues.

The third commit was a set of changes I added to help me debug the install process. It's not needed, but I found it useful.

If any of this looks worthwhile, let me know and I'll make pull requests.

markw65 avatar Mar 03 '25 23:03 markw65

The kernel rejecting binaries in too-new images is probably a (g)libc(6) issue. (I'm not sure when to add or omit the "g" or the "6".)

mk-pmb avatar Mar 06 '25 10:03 mk-pmb

The kernel rejecting binaries in too-new images is probably a (g)libc(6) issue

I don't think that's it. The docker hello binary is statically linked (and I think it uses musl rather than glibc). Static linking is supposed to ensure that it works "anywhere", regardless of the installed libraries - but clearly there's some other issue...

markw65 avatar Mar 08 '25 00:03 markw65