Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rocker EOL fixing #140

Open
chainsawriot opened this issue May 24, 2023 · 4 comments
Open

Rocker EOL fixing #140

chainsawriot opened this issue May 24, 2023 · 4 comments

Comments

@chainsawriot
Copy link
Collaborator

Many old Rocker and EOL images use Debian Stretch, which has been EOL since June 2022. The grace period is also lapsed recently, therefore it is no longer usable.

This is the quick fix:

debuerreotype/docker-debian-eol-artifacts#9

@e-kotov
Copy link
Contributor

e-kotov commented Oct 12, 2023

adding a line in the dockerfile / apptainer def before any calls to apt/apt-get:

echo "deb http://archive.debian.org/debian stretch main contrib non-free" > /etc/apt/sources.list

seems to fix this. This solution is based on: https://unix.stackexchange.com/questions/371890/debian-the-repository-does-not-have-a-release-file

I will do some more testing and submit a pull request in the coming weeks.

I don't know if there's a better fix, as I suppose these older Debian images are not going to be updated to use the new repositories.

@e-kotov
Copy link
Contributor

e-kotov commented Oct 12, 2023

Actually, this concerns not just stretch release, but many other older versions...

@chainsawriot
Copy link
Collaborator Author

chainsawriot commented Oct 12, 2023

@e-kotov I did that also in this blog post.

EOL Debian is easier because we know which Debian was used. The issue is that we need to study every r-ver Rocker Image to study which Debian version was used.

UPDATE: I have an idea of running a shell script to determine the Debian / Ubuntu version from /etc/apt/sources.list INSIDE the container; run update; if update fails, patch /etc/apt/sources.list automatically and run update again.

@e-kotov
Copy link
Contributor

e-kotov commented Oct 12, 2023

@chainsawriot does not seem like a huge problem, as the definitions are public (e.g. https://github.com/rocker-org/rocker-versioned/blob/master/r-ver/3.1.0.Dockerfile ), so it is possible to simply clone the repo, parse all Dockefiles and create a small database of r-ver version vs Debian version. Then use this during the script generation.

Alternatively, we could inject a simple bash script that detects Debian version at image build time and applies the relevant line to add to /etc/apt/sources.list

UPDATE: missed your update. So yes, essentially my alternative solution is somewhat similar to your updated suggestion. I think this is the best way to go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants