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

Update Alpine to 3.13 #30

Closed
Svedrin opened this issue Jan 28, 2021 · 5 comments · Fixed by #31
Closed

Update Alpine to 3.13 #30

Svedrin opened this issue Jan 28, 2021 · 5 comments · Fixed by #31
Labels
enhancement New feature or request

Comments

@Svedrin
Copy link
Owner

Svedrin commented Jan 28, 2021

I'd like to update the Images to Alpine 3.13, thereby shrinking them because I will no longer need to build pandas myself but can just install it through apk.

Unfortunately this does not yet make sense, because it would break our support for Arm: Alpine 3.13 has a new musl which comes with 64-bit time support. This is not yet supported in Rasbian buster's version of Docker though: https://gitlab.alpinelinux.org/alpine/aports/-/issues/11774 This means we'll need a new Docker, which comes in a new Raspbian, which only comes after the release of Debian bullseye. And for that, there is no release date yet.

Until then, we'll need to stick with 3.12 unfortunately. :(

@Svedrin
Copy link
Owner Author

Svedrin commented Feb 22, 2021

moby/moby#40739, but also debuerreotype/docker-debian-artifacts#97 (comment) 🙄 😖 😞

Apparently we'll need:

  • Docker version 19.03.9 or newer
  • libseccomp version 2.4.2 or newer

I updated Docker to version 20.10.3 from the community repo now, but it still doesn't work - apparently due to libseccomp2. Raspbian currently has 2.3.3-4.

@Svedrin
Copy link
Owner Author

Svedrin commented Jul 1, 2021

Skipping 3.13 and going directly to 3.14 because that one works now on my setup:

root@dronepi:~# lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster
root@dronepi:~# docker --version
Docker version 20.10.7, build f0df350
root@dronepi:~# docker run --rm -it alpine:3.13 date
Sun Jan  0 00:100:4174038  1900
root@dronepi:~# docker run --rm -it alpine:3.14 date
Thu Jun 18 23:28:48 UTC 2071

@Svedrin
Copy link
Owner Author

Svedrin commented Jul 1, 2021

also:

root@dronepi:~# LANG=C dpkg -l libseccomp2
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name              Version      Architecture Description
+++-=================-============-============-============================================
ii  libseccomp2:armhf 2.3.3-4      armhf        high level interface to Linux seccomp filter

@Svedrin
Copy link
Owner Author

Svedrin commented Jul 1, 2021

It also seems to work on older Docker versions:

root@meshpingpi3:~# lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

root@meshpingpi3:~# docker --version
Docker version 18.09.1, build 4c52b90

root@meshpingpi3:~# LANG=C dpkg -l libseccomp2
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name              Version      Architecture Description
+++-=================-============-============-============================================
ii  libseccomp2:armhf 2.3.3-4      armhf        high level interface to Linux seccomp filter
root@meshpingpi3:~# docker run --rm -it alpine:3.12 date
Thu Jul  1 08:37:09 UTC 2021
root@meshpingpi3:~# docker run --rm -it alpine:3.13 date
Sun Jan  0 00:100:4174038  1900
root@meshpingpi3:~# docker run --rm -it alpine:3.14 date
Mon May 11 08:24:16 UTC 2037

Unfortunately meshping doesn't work with that version:

Current thread 0x76f3b390 (most recent call first):
<no Python frame>
Fatal Python error: init_interp_main: can't initialize time
Python runtime state: core initialized
PermissionError: [Errno 1] Operation not permitted

@Svedrin Svedrin reopened this Jul 1, 2021
@Svedrin
Copy link
Owner Author

Svedrin commented Jul 1, 2021

To get meshping running, I had to:

  1. Update Docker to docker-ce:

    # echo "deb https://download.docker.com/linux/debian buster stable" > /etc/apt/sources.list.d/docker.list
    # curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    # apt-get remove docker.io 
    # rm /etc/systemd/system/docker.service
    # apt-get install docker-ce
    # docker --version
    Docker version 20.10.7, build f0df350
    
  2. Install a newer libseccomp2 following these instructions:

    [BUG] Fatal Python Error: pyinit_main: can't initialize time linuxserver/docker-papermerge#4 (comment):

    wget http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.1-1_armhf.deb
    dpkg -i libseccomp2_2.5.1-1_armhf.deb
    

Now meshping works again. Adding these requirements to the README.

@Svedrin Svedrin closed this as completed in 0872908 Jul 1, 2021
@Svedrin Svedrin added the enhancement New feature or request label Aug 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant