emmercm / docker-libtorrent

🌀 Docker image packaging for libtorrent.
https://hub.docker.com/r/emmercm/libtorrent
GNU General Public License v3.0
15 stars 6 forks source link

Libtorrent 2.0.9 Alpine 3.17 Python 3.10 #163

Open jee-r opened 1 year ago

jee-r commented 1 year ago

Hi Christian,

i'm using your fantastic image as base for my deluge image, but I'm locked to this version https://github.com/emmercm/docker-libtorrent/commit/6627dc5d68ed6d580cd7a27ac58c93de2ab45eed

The upgrade to alpine3.18 and therefore python 3.11 is not supported by Deluge at this time.

Do you think it is possible to create a specific build in the workflow for an emmercm/libtorrent:2.0.9-alpine3.17 image ?

Thank you

Note: As a workaround i added a libtorrent building stage https://github.com/jee-r/docker-deluge/blob/58c96019e7f784a6ea3d3ab581951d284f2a0945/Dockerfile#L24

emmercm commented 1 year ago

Out of curiosity, what kind of output does Python 3.11 produce? Curious if it's https://dev.deluge-torrent.org/ticket/3600.

Candidly, I'm hesitant to maintain a special 2.0 branch. But maybe there's a better tagging strategy here where images would automatically get tagged as #.#.#-python#.#.

The temporary builder stage should totally work! But if you're interested in avoiding maintenance, you could pin the image to a digest. I don't think container registries offer good tooling to discover all digests for a tag, but I know from this automatic qBittorrent PR that the image digest you want is emmercm/libtorrent:2.0@sha256:bdacdb71b63ea641e449963fbb35da9e2102de082a752cc5abe32869f35e64cf.

$ docker run -it emmercm/libtorrent:2.0@sha256:bdacdb71b63ea641e449963fbb35da9e2102de082a752cc5abe32869f35e64cf python3 --version
Python 3.10.10

Shameless plug, but most of the time you want to pin your base images for this reason: https://emmer.dev/blog/keep-docker-base-images-updated-with-renovate/#pinning-docker-image-digests

jee-r commented 1 year ago

Out of curiosity, what kind of output does Python 3.11 produce? Curious if it's https://dev.deluge-torrent.org/ticket/3600.

Yes it seems related to this issue i got this error on build time thanks for pointing it out i missed it.

Collecting wheel
  Downloading wheel-0.40.0-py3-none-any.whl (64 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.5/64.5 kB 1.2 MB/s eta 0:00:00
Requirement already satisfied: pip in /usr/lib/python3.11/site-packages (23.1.2)
Collecting six==1.16.0
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: wheel, six
Successfully installed six-1.16.0 wheel-0.40.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Ignoring pywin32: markers 'sys_platform == "win32"' don't match your environment
Ignoring certifi: markers 'sys_platform == "win32"' don't match your environment
Ignoring windows-curses: markers 'sys_platform == "win32"' don't match your environment
ERROR: Could not find a version that satisfies the requirement libtorrent (from versions: none)
ERROR: No matching distribution found for libtorrent

I will investigate more deeply why deluge's build failed

Yes pining could do the job thank you for sharing the tip :pray:

jee-r commented 7 months ago

Hi Christian we can close this issue i fixed the build based on your image by installing deluge dependencies from alpine packages instead with pip.

https://github.com/jee-r/docker-deluge/commit/f60ba2a252b9e0ba6f24443fd8c5a4030ec6d00f

I need help cleaning up the dependencies to reduce the image size if anyone has the knowledge. https://github.com/jee-r/docker-deluge/issues/50

Cheers