Add Posterizarr Container with Multi-Architecture Support#254
Add Posterizarr Container with Multi-Architecture Support#254onedr0p merged 18 commits intohome-operations:mainfrom dapperdivers:posterizarr
Conversation
Did you look at trying to implement this with an Alpine base image instead? We usually try out best to stick with that as a base but I understand if maybe there's some musl issues with this app?
I would advise against compiling from source unless there was no other option, in the Alpine repos it looks like 3.21 has 7.1.1. If you must use Ubuntu, 25.04 has 7.1.1 |
|
The app does a weird check where it looks for the latest version and tries to download a copy of it locally. Building from source allows us to skip that check as its always the latest version I didn't like that. Seemed weird that the script itself could download executable and run it.
|
Seems like that concern should be addressed upstream 😬
We tried to get Plex on alpine but it didn't like musl for arm64 containers. |
|
Looks like it only downloads imagemagick if OSType is not Docker (whatever that is, an env var?) |
I'll see what I can do, but I don't have a ton of confidence there. I'm learning a bit on this one. Are there any best practices that would block that kind of behavior I can add to the dockerfile/ entrypoint? |
|
Do you have a link to their Dockerfile / Docker build files? I cannot find it. That would really help unravel this whole thing. |
|
I also see Powershell in the alpine pkgs, https://pkgs.alpinelinux.org/package/v3.21/community/x86_64/powershell |
Not likely to get it. This is why I went down this path >> |
fscorrupt/Posterizarr@0e3fc68/Posterizarr.ps1#L81 I think this. |
Ermmm... well that's a thing. What a weird stance. |
|
I've converted this to a draft, feel free to update when you have time. |
Will do! Testing the build with alpine. 🤞 that goes well |
|
@dapperdivers I would also try to slim down the |
|
Also.... WOW from where I was this morning to now is wild. this image was close to 3 gigs and good god complex. |
|
https://github.com/DapperDivers/dapper-cluster/tree/main/kubernetes/apps/media/posterizarr/app Well 🤷 I'm good to merge this thing if you are! I had to get a little weird with the secrets/ config, and I've stuck the "running" file fix in here. |
|
Great job, this looks so much better than the first implementation. I have been busy this week but it looks like @onedr0p got you on the right track! |
|
Okay, so thanks for all the ideas and work on this, @dapperdivers . I had a look at your approach and adjusted my dev container to reflect your Dockerfile. I also added the Repo: https://github.com/fscorrupt/docker-posterizarr-dev Image: |
|
@fscorrupt you should really look to consolidate your repos into one, put the container bits into to your main repo to make things hella easier, these could then be pulled in from the local filesystem and you can easily version the container image the same as the script/application. |
|
@dapperdivers I'm going to suggest if possible to work with @fscorrupt on improvements to his container. We can merge this if you still feel it's useful but upstream looks to be trying to follow along with the improvements you've made. |
@onedr0p I made it that way to be able to update the application separately from the container, as I always used the container just as a prerequisite to run the script. If I packed everything into the image, I would always have to rebuild it for script changes. Now, I only need to restart the container instead of rebuilding it. But ive added that part (main posterizarr repo) to the dev repo and edited the dockerfile - so we can play with it. |
|
That issue can be solved by running it locally by just building it.. e.g. by have a separate services:
app:
build: .
... |
|
Okay, yeah, maybe @dapperdivers can take a look at the workflows and everything in the dev repo. It should now be in a state where all required files from Posterizarr are present. I'm looking forward to a PR! :D |
adding arm support the other way
adding back the labels
changing path update dockerfile with python
|
Alrighty, I've pulled the PR above together to address some of the original concerns. I'd like to propose we merge this for the time being, and once things get buttoned up upstream we can remove this wrapper! |
|
I'll go ahead and merge this but please notify us if upstream can ever take it over. Thanks! |
…tions#254) Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
I WOULD LOVE some honest feedback here even if you hate it. This is my best implementation of what yall have been doing in here to get away from running this bad boy with
s6-setuidgidand root.This PR adds a new container for Posterizarr, an automated poster generation tool for Plex/Jellyfin/Emby media libraries. The implementation includes full support for both AMD64 and ARM64 architectures.
Changes
Initial Container Implementation
Added Dockerfile based on Ubuntu 24.04
Implemented entrypoint.sh script with proper error handling and test mode support
Added comprehensive tests to verify container functionality
Configured metadata for version tracking (currently v1.9.34)
Multi-Architecture Support
Add environment variables for test mode to all test cases - this runs as a fire and forget not a container
Technical Details
The container builds ImageMagick from source to ensure the latest version is available. PowerShell is installed using architecture-specific methods