h2non / imaginary

Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing
https://fly.io/docs/app-guides/run-a-global-image-service/
MIT License
5.5k stars 455 forks source link

Docker tag `latest` was last updated 2 years ago #390

Open dhruvkb opened 2 years ago

dhruvkb commented 2 years ago

Is Docker no longer a recommended way to use imaginary? As per the Docker Hub tags, the tag latest was pushed 2 years ago.

While I can see that the library is being actively maintained, there aren't any M1-compatible arm based images on Docker Hub either. If not via the official Docker image, what's the recommended approach to use this library?

dhruvkb commented 2 years ago

At Openverse, we've created a multi-arch (linux/arm64 + linux/amd64) Docker image of imaginary, hosted on GHCR. Leaving this here in case it helps anyone looking for updated Docker images. Here is the workflow we used to generate this image. Feel free to use it if you'd like a CI pipeline to build Docker images regularly.

We had to make 2 changes to the Dockerfile for the builds to succeed.

ItalyPaleAle commented 2 years ago

I've been building updated Docker images myself and you can find them on GHCR: ghcr.io/italypaleale/imaginary:master It's multi-arch for linux/amd64 and linux/arm64, and it's built automatically with an Action.

This is from my fork, which fixes the issues you've identified above and a few more changes (including https://github.com/h2non/imaginary/pull/386 ). It also updates the base image to Bullseye. Full diff: https://github.com/h2non/imaginary/compare/master...ItalyPaleAle:master

You're welcome to use those images too, although note that I offer no guarantee on their support :)

dhruvkb commented 2 years ago

@ItalyPaleAle while we made only the bare minimum changes needed to compile the image, you've made some very notable improvements to both the code and the Dockerfile.

I'll definitely try to see if your images can fit into our use and if the team agrees we'll drop our version and switch to yours. Thanks for working on this, it'll help a lot of folks wanting to use the updated code as a Docker container.

ItalyPaleAle commented 2 years ago

@dhruvkb

The code changes are actually fairly minimal. The only "real" code change is what's in #386 (the other changes to the Go file are due to gofmt running when I saved it).

The biggest changes are:

Aside from that, the other changes were more about the engineering processes themselves:

Thus said, if you/your team think my changes are valuable to you too, I'd very gladly grant you access to my repo too, or even transfer it to you :)

sarayourfriend commented 2 years ago

@ItalyPaleAle Thank you for the offer to transfer the repository over to us! I'll add this to our agenda to discuss during our community meeting tomorrow, which you are welcome to join us for in the WordPress Make Slack. You can follow the instructions on this page to make an account and access it: https://make.wordpress.org/chat/. Then you can find us in the #openverse channel. The community meeting happens at 15 UTC on Tuesdays on a weekly basis. No worries if you can't make it though, I'll leave an update on our discussion about it here.

ItalyPaleAle commented 2 years ago

Thanks @sarayourfriend ! Sadly, I am not able to join tomorrow because of a conflict, but you can contact me directly at github [at] [my GitHub username] [dot] com should you need anything.

sarayourfriend commented 2 years ago

@ItalyPaleAle We discussed it and I think we're going to stick with publishing our own image for the moment, adding a big disclaimer that we're not seeking to actively maintain a fork of upstream. We will probably borrow some of the improvements you made though and be sure to Co-authored-by: you on the commits so you show up in our contribution log (if you're okay with that).

ItalyPaleAle commented 2 years ago

Sounds good, thanks for letting me know. I may just stop maintaining mine then and adopt yours.

bluepuma77 commented 2 years ago

I would assume a lot of people just search docker hub for Docker images and find https://hub.docker.com/r/h2non/imaginary

Why not 1) keep it up to date or 2) at least leave a depreciation notice with a link to the new repository?

ItalyPaleAle commented 2 years ago

Note that the repository linked here is an unofficial fork!

bluepuma77 commented 2 years ago

@ItalyPaleAle Sorry, I don't understand, which is an unofficial fork?

  1. https://github.com/h2non/imaginary
  2. https://hub.docker.com/r/h2non/imaginary/

Github page clearly states to use docker pull h2non/imaginary (which is on Docker Hub). If the Docker repository is unofficial, why is is mentioned in the official documentation?

ItalyPaleAle commented 2 years ago

I'm sorry, I thought you were talking about the forks that we've been mentioning in this thread. Please disregard.

peter-ponzel commented 2 years ago

@h2non are there any plans on releasing a newer latest version on docker hub - preferably with all mentioned improvements ?

jcbriones commented 10 months ago

Also waiting on this.