osrf / rocker

A tool to run docker containers with overlays and convenient options for things like GUIs etc.
Apache License 2.0
584 stars 75 forks source link

Current release version 0.2.10 broken os_detect #220

Closed qw8z5fUB closed 1 year ago

qw8z5fUB commented 1 year ago

I think the os detector in 0.2.10 is broken, it looks like the apt sources in the underlying image python:3-slim-stretch is out of date (related question answered 2h ago).

I'm not sure if that image will be updated to resolve this, and at the same time I see rocker:main has switched to using golang:1.19 as the base image for the os_detector.

As a quick fix, could you release the current version to pypi ? edit: request update all release channels (PyPi, deb, AUR)

To reproduce the issue (I'm testing on Ubuntu 20.04.5 LTS, Python 3.8.10)

python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install rocker==0.2.10
rocker --nvidia --nocache ros:humble

Gives errors:

E: Failed to fetch http://deb.debian.org/debian/dists/stretch/main/binary-amd64/Packages  404  Not Found
E: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/main/binary-amd64/Packages  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

Removing intermediate container abd43a1a1229
no more output and success not detected
Failed to build detector image
Zoe-Wan commented 1 year ago

YES, and I have met the very same problem! It is beacause the image python:3-slim-stretch has been moved to archive.debian.org ( https://lists.debian.org/debian-devel-announce/2023/03/msg00006.html )

130s commented 1 year ago

As a quick fix, could you release the current version to pypi?

+1 as a quick fix if that has the new feature that avoids this. But seeing https://pypi.org/project/rocker/ the version 0.2.10 appears to be the same as apt version? On my Ubuntu 22.04: UPDATE +1 Please release .deb too, as it's an issue for the .deb of the following version as well:

$ apt-cache policy python3-rocker
python3-rocker:
  Installed: 0.2.10-100
  Candidate: 0.2.10-100

Tentative dirty local patch suggested (Use at your risk)

I needed an immediate fix so worked around by updating the docker image python:3-slim-stretch locally. Warning: This overwrites the image with the same name on your local host:

$ docker run -it python:3-slim-stretch bash

# echo "deb http://archive.debian.org/debian stretch main" > /etc/apt/sources.list

$ DC_HASH=<enter your container hashkey> && docker commit $DC_HASH python:3-slim-stretch 
Zoe-Wan commented 1 year ago

As a quick fix, could you release the current version to pypi?

+1 as a quick fix if that has the new feature that avoids this. But seeing https://pypi.org/project/rocker/ the version 0.2.10 appears to be the same as apt version? On my Ubuntu 22.04:

$ apt-cache policy python3-rocker
python3-rocker:
  Installed: 0.2.10-100
  Candidate: 0.2.10-100

Tentative dirty local patch suggested (Use at your risk)

I needed an immediate fix so worked around by updating the docker image python:3-slim-stretch locally. Warning: This overwrites the image with the same name on your local host:

$ docker run -it python:3-slim-stretch bash

# echo "deb http://archive.debian.org/debian stretch main" > /etc/apt/sources.list

$ DC_HASH=<enter your container hashkey> && docker commit $DC_HASH python:3-slim-stretch 

Thanks for your excellent solution @130s 👍! It works for me ! I have fixed it, but I still expect someone to update the images.

130s commented 1 year ago

@qw8z5fUB As in https://github.com/osrf/rocker/issues/220#issuecomment-1521533160, this issue is seen with .deb version of 0.2.10 as well. Mind removing pip from the title?

qw8z5fUB commented 1 year ago

Yes I suppose this is an issue wherever 0.2.10 is the current release version, which appears to be the case on pypi, the ROS deb repositories, and Arch User Repository.

atticusrussell commented 1 year ago

I also have this issue on 22.04 :

$ sudo rocker --nvidia --x11 --pulse rover:humble
Extension volume doesn't support default arguments. Please extend it.
Active extensions ['nvidia', 'pulse', 'x11']
Step 1/12 : FROM python:3-slim-stretch as detector
 ---> 7691d3cb6cbc
Step 2/12 : RUN mkdir -p /tmp/distrovenv
 ---> Using cache
 ---> e009ee70aa6e
Step 3/12 : RUN python3 -m venv /tmp/distrovenv
 ---> Using cache
 ---> d4a84258efac
Step 4/12 : RUN apt-get update && apt-get install -qy patchelf binutils
 ---> Running in 67081ee5e642
Ign:1 http://security.debian.org/debian-security stretch/updates InRelease
Ign:2 http://deb.debian.org/debian stretch InRelease
Ign:3 http://security.debian.org/debian-security stretch/updates Release
Ign:4 http://deb.debian.org/debian stretch-updates InRelease
Ign:5 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
Ign:6 http://security.debian.org/debian-security stretch/updates/main all Packages
Ign:7 http://deb.debian.org/debian stretch Release
Ign:5 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
Ign:8 http://deb.debian.org/debian stretch-updates Release
Ign:6 http://security.debian.org/debian-security stretch/updates/main all Packages
Ign:9 http://deb.debian.org/debian stretch/main all Packages
Ign:5 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
Ign:6 http://security.debian.org/debian-security stretch/updates/main all Packages
Ign:10 http://deb.debian.org/debian stretch/main amd64 Packages
Ign:5 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
Ign:11 http://deb.debian.org/debian stretch-updates/main amd64 Packages
Ign:6 http://security.debian.org/debian-security stretch/updates/main all Packages
Ign:12 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:5 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
Ign:6 http://security.debian.org/debian-security stretch/updates/main all Packages
Ign:9 http://deb.debian.org/debian stretch/main all Packages
Err:5 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
  404  Not Found
Ign:10 http://deb.debian.org/debian stretch/main amd64 Packages
Ign:6 http://security.debian.org/debian-security stretch/updates/main all Packages
Ign:11 http://deb.debian.org/debian stretch-updates/main amd64 Packages
Ign:12 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:9 http://deb.debian.org/debian stretch/main all Packages
Ign:10 http://deb.debian.org/debian stretch/main amd64 Packages
Ign:11 http://deb.debian.org/debian stretch-updates/main amd64 Packages
Ign:12 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:9 http://deb.debian.org/debian stretch/main all Packages
Ign:10 http://deb.debian.org/debian stretch/main amd64 Packages
Ign:11 http://deb.debian.org/debian stretch-updates/main amd64 Packages
Ign:12 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:9 http://deb.debian.org/debian stretch/main all Packages
Ign:10 http://deb.debian.org/debian stretch/main amd64 Packages
Ign:11 http://deb.debian.org/debian stretch-updates/main amd64 Packages
Ign:12 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:9 http://deb.debian.org/debian stretch/main all Packages
Err:10 http://deb.debian.org/debian stretch/main amd64 Packages
  404  Not Found
Err:11 http://deb.debian.org/debian stretch-updates/main amd64 Packages
  404  Not Found
Ign:12 http://deb.debian.org/debian stretch-updates/main all Packages
Reading package lists...
W: The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file.
W: The repository 'http://deb.debian.org/debian stretch Release' does not have a Release file.
W: The repository 'http://deb.debian.org/debian stretch-updates Release' does not have a Release file.
E: Failed to fetch http://security.debian.org/debian-security/dists/stretch/updates/main/binary-amd64/Packages  404  Not Found
E: Failed to fetch http://deb.debian.org/debian/dists/stretch/main/binary-amd64/Packages  404  Not Found
E: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/main/binary-amd64/Packages  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

Removing intermediate container 67081ee5e642
no more output and success not detected
Failed to build detector image
WARNING unable to detect os for base image 'rover:humble', maybe the base image does not exist
qw8z5fUB commented 1 year ago

Just to note my temp workaround was to pip install directly from github:main: pip install --force-reinstall git+https://github.com/osrf/rocker.git@main

Thanks also @130s for your posted workaround RE a local patch to the python:3-slim-stretch image: https://github.com/osrf/rocker/issues/220#issuecomment-1521533160

Croquembouche commented 1 year ago

having this same issue as well.

tfoote commented 1 year ago

I'm glad that we moved to the golang detector. I'll get a new release out shortly.

tfoote commented 1 year ago

0.2.11 is out. ROS sources are propagating and pypi is now available

qw8z5fUB commented 1 year ago

Thank you!

ndahn commented 1 year ago

Thank you! This solution (upgrading rocker) was difficult to find for me because it wasn't clear that it came from rocker itself. May I suggest adding a simple echo to the snippet templates?

YuanYuYuan commented 1 year ago

An Archlinux user comes here for the same bug.😁 Just let you know the AUR package python-rocker has been updated to 0.2.12 to resolve this issue as well.