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

Docker-CE need updating for raspbian buster #709

Open
nlt6444 opened this issue Jun 26, 2019 · 114 comments

Comments

@nlt6444
Copy link

commented Jun 26, 2019

  • This is a bug report
  • This is a feature request
  • [ x] I searched existing issues before opening this one

Expected behavior

Successful install

Actual behavior

Docker-CE is unavailable for raspbian buster. I would to request an update to the application.

Steps to reproduce the behavior

Install the following prerequisites.

sudo apt-get install apt-transport-https ca-certificates software-properties-common -y
b. Download and install Docker.

curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
c. Give the ‘pi’ user the ability to run Docker.

sudo usermod -aG docker pi
d. Import Docker CPG key.

sudo curl https://download.docker.com/linux/raspbian/gpg
e. Setup the Docker Repo.

vim /etc/apt/sources.list
Add the following line and save:

deb https://download.docker.com/linux/raspbian/ stretch stable

@Floppy

This comment has been minimized.

Copy link

commented Jun 27, 2019

This is definitely a problem, because as noted in #545, the docker.io package in the default raspbian buster repo isn't working at all either.

@EasternPA

This comment has been minimized.

Copy link

commented Jun 28, 2019

Edit: Removing prior comment. I was an idiot. I mistakenly specified [arch=amd64] in /etc/apt/sources.list. I changed arch to armhf and docker-ce showed right up and installed properly.

@garyng

This comment has been minimized.

Copy link

commented Jun 29, 2019

Any updates on this?

@Qarasique

This comment has been minimized.

Copy link

commented Jun 29, 2019

Confirm, cant install on raspbian buster

@hminaya

This comment has been minimized.

Copy link

commented Jun 29, 2019

Any way to manually install?

@marklagendijk

This comment has been minimized.

Copy link

commented Jun 29, 2019

The docker packages are included in Raspbian buster by default.
You can install with sudo apt-get install docker.io docker-compose.
Restart after installation.

Update:
Although you can install docker and docker-compose, you get the error ERROR: for SERVICE_NAME Cannot start service SERVICE_NAME: unable to find "net_prio" in controller set: unknown when trying to start any image.
As described here this is because of an outdated version of containerd in the docker-io package.

@kolektiv

This comment has been minimized.

Copy link

commented Jun 29, 2019

@garyng

This comment has been minimized.

Copy link

commented Jun 29, 2019

Any way to manually install?

I manually edited the install script from get.docker.com to force it to download the stretch version of docker. Maybe give it a try?

@hminaya

This comment has been minimized.

Copy link

commented Jun 29, 2019

@garyng how did it work out for you? All good with the containers?

@garyng

This comment has been minimized.

Copy link

commented Jun 29, 2019

@hminaya seems pretty stable ... for now

@MBlokhuijzen

This comment has been minimized.

Copy link

commented Jun 29, 2019

@garyng could you maybe share the the script? I'm not entirely sure what to edit in the script

@MBlokhuijzen

This comment has been minimized.

Copy link

commented Jun 29, 2019

Found a way to do it.

  • Edit /etc/apt/sources.list.d/docker.list
  • Change line to: deb [arch=armhf] https://download.docker.com/linux/raspbian stretch stable

After that I'm able to use Docker

@andresbono

This comment has been minimized.

Copy link

commented Jun 29, 2019

I confirm it works for now. Oneliner to install it on raspbian buster:

curl -sL get.docker.com | sed 's/9)/10)/' | sh
@kasprzakdanielt

This comment has been minimized.

Copy link

commented Jun 29, 2019

I confirm it works for now. Oneliner to install it on raspbian buster:

curl -sL get.docker.com | sed 's/9)/10)/' | sh

still just a workaround, not a fix tho

@notogawa

This comment has been minimized.

Copy link

commented Jun 30, 2019

@MBlokhuijzen, it works on pi3. On pi0, it fails with illegal instruction.

@notogawa

This comment has been minimized.

Copy link

commented Jun 30, 2019

I think there is no docker-ce package and workaround works on pi0(armv6) raspbian buster.

@notogawa

This comment has been minimized.

Copy link

commented Jun 30, 2019

result docker-ce package raspbian device issue/reason
works 18.09.0~3-0~raspbian-stretch stretch pi3
fails 18.09.0~3-0~raspbian-stretch stretch pi0 #681
works 18.06.1~ce~3-0~raspbian stretch pi3
works 18.06.1~ce~3-0~raspbian stretch pi0
works 18.09.0~3-0~raspbian-stretch buster pi3
fails 18.09.0~3-0~raspbian-stretch buster pi0 illegal instruction
fails 18.06.1~ce~3-0~raspbian buster pi3 #545
@xenosathl

This comment has been minimized.

Copy link

commented Jun 30, 2019

For more detailed explanation of workaround proposed by @andresbono

  1. Find do_install function. (in my scenario line 205.)
  2. Find switch for $lsb_dist (in my scenario 280.) and proceed to 'debian|raspbian' case.
  3. Inside sub-switch $dist_version (in my scenario 293.) add another case like:
case "$dist_version" in
    10)
        dist_version="stretch"
         ;;
# [...]
@lowdef

This comment has been minimized.

Copy link

commented Jun 30, 2019

I confirm it works for now. Oneliner to install it on raspbian buster:

curl -sL get.docker.com | sed 's/9)/10)/' | sh

does not work here on RPi 3 B+. Pristine install from recent NOOBS, installs buster:

pi@raspberrypi:~/src/docker $ curl -sL get.docker.com | sed 's/9)/10)/' | sh
# Executing docker install script, commit: 2f4ae48
+ sudo -E sh -c apt-get update -qq >/dev/null
E: The repository 'https://download.docker.com/linux/raspbian 10 Release' does not have a Release file.

post edit:
It works if you make sure the repository config is clean, see the answer from @caio below.

@theDiverDK

This comment has been minimized.

Copy link

commented Jun 30, 2019

The oneline does not work on Raspberry PI 3b either.

Get the same error as @lowdef :-(

@caio

This comment has been minimized.

Copy link

commented Jun 30, 2019

@lowdef & @theDiverDK - The error you are getting is because the script is resuming from a partial state. If you drop the repository config, the curl|sed|sh workaround you're trying should work:

sudo rm /etc/apt/sources.list.d/docker.list;
curl -sL get.docker.com | sed 's/9)/10)/' | sh

(Or just adjust the file to point to stretch instead of 10, as mentioned @ #709 (comment))

@theDiverDK

This comment has been minimized.

Copy link

commented Jun 30, 2019

thanks @caio

It sure does work now, thanks :)

@brtwrst

This comment has been minimized.

Copy link

commented Jun 30, 2019

I got it installed without problems by downloading the most recent .deb files for containerd.io, docker-ce-cli and docker-ce from here https://download.docker.com/linux/debian/dists/buster/pool/stable/armhf/
and installing them in that order with sudo dpkg -i <deb-file>

System:
Raspberry PI 4
Latest Raspbian Buster
deb files: containerd.io_1.2.6-3_armhf.deb docker-ce_18.09.7~3-0~debian-buster_armhf.deb docker-ce-cli_18.09.7~3-0~debian-buster_armhf.deb

@d11wtq

This comment has been minimized.

Copy link

commented Jul 1, 2019

Following the manual instructions and using the latest edge instead of stable works for me on buster https://docs.docker.com/install/linux/docker-ce/binaries/#install-daemon-and-client-binaries-on-linux

@sirius1024

This comment has been minimized.

Copy link

commented Jul 3, 2019

It worked with @caio 's way.

@notogawa

This comment has been minimized.

Copy link

commented Jul 3, 2019

please report which device you use.

@sirius1024

This comment has been minimized.

Copy link

commented Jul 3, 2019

RPi 3 Model B (not plus).

@kjyv

This comment has been minimized.

Copy link

commented Jul 28, 2019

@PelleRavn thanks for the pointer but that wasn't it, modules look fine and no old headers are installed. There isn't even a separate headers package on raspbian.
journalctl -xe shows me this though:

Jul 28 14:21:41 hostname dockerd[1119]: time="2019-07-28T14:21:41.415271683+02:00" level=warning msg="Your kernel does not support cgroup memory limit"
Jul 28 14:21:41 hostname dockerd[1119]: time="2019-07-28T14:21:41.415381423+02:00" level=warning msg="Your kernel does not support cgroup cfs period"
Jul 28 14:21:41 hostname dockerd[1119]: time="2019-07-28T14:21:41.415423298+02:00" level=warning msg="Your kernel does not support cgroup cfs quotas"
Jul 28 14:21:41 hostname dockerd[1119]: time="2019-07-28T14:21:41.415464548+02:00" level=warning msg="Your kernel does not support cgroup rt period"
Jul 28 14:21:41 hostname dockerd[1119]: time="2019-07-28T14:21:41.415503246+02:00" level=warning msg="Your kernel does not support cgroup rt runtime"
Jul 28 14:21:41 hostname dockerd[1119]: time="2019-07-28T14:21:41.415760381+02:00" level=warning msg="mountpoint for pids not found"
Jul 28 14:21:41 hostname dockerd[1119]: time="2019-07-28T14:21:41.416881839+02:00" level=info msg="Loading containers: start."
Jul 28 14:21:42 hostname dockerd[1119]: time="2019-07-28T14:21:42.478822907+02:00" level=info msg="stopping event stream following graceful shutdown" error="<nil>" mod
Jul 28 14:21:42 hostname dockerd[1119]: failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain
Jul 28 14:21:42 hostname dockerd[1119]:  (exit status 1)

All the cgroup* packages are installed.

@oberon227

This comment has been minimized.

Copy link

commented Jul 28, 2019

@kjyv That looks extremely similar to the problem I had. (Though, I can't say for certain; the logs are gone)

It's not that old headers were installed. It's that I didn't have headers for the running kernel; the running kernel was "too" old compared to my headers.

uname -r shows you the revision of the kernel you're running. For me today, on my Pi 3, it's '4.19.58-v7+'. You can run ls /lib/modules/$(uname -r) to ensure that you've got the headers for your running kernel.

@markmcgookin

This comment has been minimized.

Copy link

commented Jul 28, 2019

With a clean install of Raspbian (2019-06-20) I did an

sudo apt update --allow-releaseinfo-change
sudo apt-get upgrade

--allow-realeaseinfo-change just gets rid of this warning
E: Repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' changed its 'Suite' value from 'testing' to 'stable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.

then restarted then

sudo curl -sL get.docker.com | bash

and as far as I can tell, I have a working copy of docker up and running!

@kjyv

This comment has been minimized.

Copy link

commented Jul 28, 2019

@oberon227 Thanks for the pointers and the kernel version. My kernel and lib was matching, but then I noticed that /etc/apt/sources.list.d/raspi.list was missing so the update to buster didn't properly install the new kernel and some other stuff. I was still running on the old stretch kernel, now with the current raspbian kernel docker works fine.

@kzabashta

This comment has been minimized.

Copy link

commented Jul 29, 2019

@marklagendijk Thank you so much. For anyone else, if you used the work around from above and ran into issues installing the official package un buster, remove old files (rm -rf /var/lib/docker)

@jalbert33

This comment has been minimized.

Copy link

commented Jul 30, 2019

Convenience script didn't work for me.
Model B+ Revision 1.2 512MB
Raspbian buster (2019-07-10)

apt update/ugrade/dist-upgrade, then convenience script with failed installation on docker-ce service start... docker version seems OK but no daemon.

@markmcgookin

This comment has been minimized.

Copy link

commented Jul 30, 2019

Convenience script didn't work for me.
Model B+ Revision 1.2 512MB
Raspbian buster (2019-07-10)

apt update/ugrade/dist-upgrade, then convenience script with failed installation on docker-ce service start... docker version seems OK but no daemon.

I have it working fine on a Pi3 and a Pi4 both with Buster but my Pi 2 is barfing with the get.docker script too. Might have to roll this one back to jessie or something?

@MichaIng

This comment has been minimized.

Copy link

commented Jul 30, 2019

@jalbert33
Did you try the fixed containerd.io package, since the official one is known to fail on ARMv6 (RPi1+Zero) currently?

cd /tmp
wget https://packagecloud.io/Hypriot/rpi/packages/raspbian/stretch/containerd.io_1.2.6-1_armhf.deb
dpkg -i containerd.io_1.2.6-1_armhf.deb
rm containerd.io_1.2.6-1_armhf.deb
systemctl restart docker
@markmcgookin

This comment has been minimized.

Copy link

commented Jul 30, 2019

@jalbert33
Did you try the fixed containerd.io package, since the official one is known to fail on ARMv6 (RPi1+Zero) currently?

cd /tmp
wget https://packagecloud.io/Hypriot/rpi/packages/raspbian/stretch/containerd.io_1.2.6-1_armhf.deb
dpkg -i containerd.io_1.2.6-1_armhf.deb
rm containerd.io_1.2.6-1_armhf.deb
systemctl restart docker

I just tried it there now on the Pi2.

pi@dockerregistry:/tmp $ sudo dpkg -i containerd.io_1.2.6-1_armhf.deb
dpkg-deb: error: 'containerd.io_1.2.6-1_armhf.deb' is not a Debian format archive
dpkg: error processing archive containerd.io_1.2.6-1_armhf.deb (--install):
 dpkg-deb --control subprocess returned error exit status 2
@MichaIng

This comment has been minimized.

Copy link

commented Jul 30, 2019

@markmcgookin
I don't think it will fix things on RPi2, however should work as well (if everything else does) and at least should install 🤔.

Ah the link is wrong, it is just a webpage... also there is a Buster directory, so we'll use this.
Try with https://packagecloud.io/Hypriot/rpi/packages/raspbian/buster/containerd.io_1.2.6-1_armhf.deb/download.deb:

cd /tmp
wget https://packagecloud.io/Hypriot/rpi/packages/raspbian/buster/containerd.io_1.2.6-1_armhf.deb/download.deb
dpkg -i download.deb
rm download.deb
systemctl restart docker
@markmcgookin

This comment has been minimized.

Copy link

commented Jul 30, 2019

@MichaIng I'll give it a bash here anyway... I literally dusted this thing off for fun to see if I could host the docker registry image on it.

@markmcgookin

This comment has been minimized.

Copy link

commented Jul 30, 2019

@MichaIng it seemed to fix something in the install, as after running those commands
docker --version gives a valid response of Docker version 19.03.1, build 74b1e89 and docker ps -a spits out the result. However when I run docker run hello-world it downloads the container image and sits for a second and then just returns with no output. Is this the 'no daemon' that was mentioned before?

@jrchen982

This comment has been minimized.

Copy link

commented Jul 30, 2019

@markmcgookin my 3B+ is installing and working good now by curl -sL get.docker.com | sed 's/9)/10)/' | sh
and also normal execution docker run hello-world

@ndanyluk

This comment has been minimized.

Copy link

commented Jul 30, 2019

@markmcgookin

This comment has been minimized.

Copy link

commented Jul 30, 2019

@ndanyluk I’m trying to run on an RPI 2 isn’t that arm7? Am I mistaken?

@jalbert33

This comment has been minimized.

Copy link

commented Jul 31, 2019

Worked for me. Thanks @MichaIng and @jrchen982.
RPI 3, Model B+ Revision 1.2 512MB
Fresh install of Raspbian buster (2019-07-10)

Here is what I did

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt autoremove
sudo reboot
curl -sL get.docker.com | sed 's/9)/10)/' | sh

The apt-get install ... docker-ce part of the script ended with a :

E: Sub-process /usr/bin/dpkg returned an error code (1)

sudo docker version gives

Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:33:17 2019
OS/Arch: linux/arm
Experimental: false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

sudo reboot
sudo docker version gives the same output

sudo systemctl enable docker

Synchronizing state of docker.service with SysV init with /lib/systemd/systemd-sysv-install.
Executing /lib/systemd/systemd-sysv-install enable docker

sudo systemctl start docker

Job for docker.service canceled

sudo systemctl disable docker
cd /tmp
wget https://packagecloud.io/Hypriot/rpi/packages/raspbian/buster/containerd.io_1.2.6-1_armhf.deb/download.deb
dpkg -i download.deb
rm download.deb

sudo systemctl enable docker

Synchronizing state of docker.service with SysV init with /lib/systemd/systemd-sysv-install.
Executing /lib/systemd/systemd-sysv-install enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service -> /lib/systemd/system/docker.service.

sudo systemctl start docker
sudo docker run --rm hypriot/armhf-hello-world
Works well, print hello world in console 👍

@markmcgookin

This comment has been minimized.

Copy link

commented Jul 31, 2019

@jalbert33 I don't think you need | sed 's/9)/10)/' | sh any more if you dist is up to date, I've not done that and mine works fine on the 3 and 4.

My pi 2 works great with the fixed containerd.io package... however as someone above mentioned it won't run hello world, but runs a docker-registry image absoloutely fine (which is strange that hello world is a more demanding image or something?)

@Naobana

This comment has been minimized.

Copy link

commented Jul 31, 2019

None of the above was unfortunately working for me, thanks anyway!

After lots of minutes searching i found the following somehow strange site:

https://qiita.com/soultoru/items/8fe75f70c568a074dbc3

This was my solution to get it working on my rpi Raspian Buster:

sudo apt-get purge docker-ce
sudo apt-get autoremove

sudo apt-get install aufs-dkms
sudo dpkg --audit
sudo rm /var/lib/dpkg/info/aufs-dkms.postinst
sudo rm /var/lib/dpkg/info/aufs-dkms.prerm

Change your docker.list to --> deb [arch=armhf] https://download.docker.com/linux/raspbian stretch stable

sudo apt update && sudo apt install docker-ce docker-ce-cli

And working!

@gonzasmts

This comment has been minimized.

Copy link

commented Aug 3, 2019

i had the same problem, turns out, the problem was related with kernel and lib not matching versions.
after update/reboot the script works without any problem.

@rhalai

This comment has been minimized.

Copy link

commented Aug 8, 2019

Hi there
ive got some more info on this, the install works fine on a PI4 using buster, if you move the microSD card to a ZeroW it fails

pi@pi4:~ $ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

pi@pi4:~ $ ps -ef | grep docker | grep -v grep
pi@pi4:~ $

pi@pi4:~ $ dockerd
INFO[2019-08-08T17:30:43.586096849+01:00] Starting up
dockerd needs to be started with root. To see how to run dockerd in rootless mode with unprivileged user, see the documentation

pi@pi4:~ $ groups
pi adm dialout cdrom sudo audio video plugdev games users input netdev docker gpio i2c spi
pi@pi4:~ $ groups pi
pi : pi adm dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio docker
pi@pi4:~ $

pi@pi4:~ $ sudo dockerd

INFO[2019-08-08T17:31:50.658790508+01:00] Starting up
INFO[2019-08-08T17:31:50.750085675+01:00] libcontainerd: started new containerd process pid=608
INFO[2019-08-08T17:31:50.752476654+01:00] parsed scheme: "unix" module=grpc
INFO[2019-08-08T17:31:50.753671643+01:00] scheme "unix" not registered, fallback to default scheme module=grpc
INFO[2019-08-08T17:31:50.756324619+01:00] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock 0 }] } module=grpc
INFO[2019-08-08T17:31:50.762338564+01:00] ClientConn switching balancer to "pick_first" module=grpc
INFO[2019-08-08T17:31:50.765356536+01:00] pickfirstBalancer: HandleSubConnStateChange: 0x55edb10, CONNECTING module=grpc
ERRO[2019-08-08T17:31:50.936460976+01:00] containerd did not exit successfully error="signal: segmentation fault" module=libcontainerd

@MichaIng

This comment has been minimized.

Copy link

commented Aug 8, 2019

@rhalai
Known issue, please see here how to install an ARMv6 (RPi Zero) compatible containerd package: #709 (comment)

@clauderobi

This comment has been minimized.

Copy link

commented Aug 12, 2019

On a RPi 0
Following instruction by @jalbert33 and @MichaIng I was able to get docker up and running. I even was successful at running hypriot/armhf-hello-world but fail at running anything else. (ubuntu, alpine).

Trying to diagnose the issue, I looked at the images (inspect) and found that hypriot/armhf-hello-world is amr64 while both ubuntu and alpine are arm. Since raspbian is 32bits, I am very surprise to see hello-world to be arm64 and work and lielwise surprise to see alpine and ubuntu not work.

docker logs returns nothing, but journalctl returns the following error messages (when trying alpine):

Aug 12 15:58:09 raspberrypi dockerd[5430]: time="2019-08-12T15:58:09.499429605+01:00" level=error msg="Handler for POST /v1.40/containers/5335974b612eb3ffa24c524edd9bede19dad7517e6d0c2e7d09833e68b6667e5/resize returned error: bad file descriptor: unknown"
Aug 12 15:58:09 raspberrypi dockerd[5430]: time="2019-08-12T15:58:09.896825163+01:00" level=error msg="Handler for POST /v1.40/containers/5335974b612eb3ffa24c524edd9bede19dad7517e6d0c2e7d09833e68b6667e5/resize returned error: bad file descriptor: unknown"
Aug 12 15:58:10 raspberrypi dhcpcd[403]: docker0: probing for an IPv4LL address
Aug 12 15:58:10 raspberrypi dockerd[5430]: time="2019-08-12T15:58:10.605770457+01:00" level=error msg="Handler for POST /v1.40/containers/5335974b612eb3ffa24c524edd9bede19dad7517e6d0c2e7d09833e68b6667e5/resize returned error: bad file descriptor: unknown"

My questions

1 - Are the images on docker hub supposed to be Ok with a RPi 0?
2 - If yes, any suggestion on why the stock alpine and ubuntu images not working?

@clauderobi

This comment has been minimized.

Copy link

commented Aug 12, 2019

I knew I had a 3rd question.....

How come the docker-engine is pulling images for the wrong architecture? I just tested hello-world (not the hypriot variant) and it fails as expected. Its image also report arm as an architecture, but yet docker info reports that the engine is for armv6l, which, it appears, in incompatible with what is fetches from docker hub.

If the solution is always to use hypriot (on docker hub) how is it possible to organize the Dockerfiles when multiple architecture need to be supported?

@ndanyluk

This comment has been minimized.

Copy link

commented Aug 12, 2019

@clauderobi

This comment has been minimized.

Copy link

commented Aug 12, 2019

Thanks @ndanyluk, very useful.

Now. the sake of completeness, beside hypriot and arm32v6 (not arm32v7, those do not work), are there other publishers that are known to have images (actually all images) that are Ok (on RPi0).

A side question, not related to docker, what about Alpine's repo? Does it correctly select the correct architecture? (And the same for ubuntu...)

@MichaIng

This comment has been minimized.

Copy link

commented Aug 12, 2019

@clauderobi
With RPi1+Zero indeed you always need to pull arm32v6, armv6hf or RPi specified docker images. This will only by rare chance be pulled correctly automatically, or there might be rare cases where even a wrong image magically works, at least partly.

On Debian, armhf (hard float) is always armv7, while armv6 is supposed to pull armel. Since both are incompatible with the special RPi1/Zero armhf for armv6, no default Debian package can be used, and that is the true as well for most 3rd party software, like Docker, that follow the Debian specifications. This is the reason, when searching for Debian software binaries, you often find special binaries only for RPi/Raspbian, which are then compiled against this special armv6hf architecture.

This was actually the initial need for Raspbian, which ships those special armhf packages, compatible with armv6. On all other RPi models, pure Debian can be used, thus all other armhf = armv7 packages/software. On RPi2 PCB v1.2 + RPi3/4 even arm64 Debian works, since those have actually armv8 CPUs: https://en.wikipedia.org/wiki/Raspberry_Pi#Specifications


All this is the reason why there is so much trouble around RPi1/Zero when installing anything outside of Raspbian APT repo. Software developers need to compile special binaries, only compatible with those few RPi models. Or they don't, and users of these models then run into issues like that. In rare cases, when following any other armv7/RPi2+ guide, which includes usual armhf packages/binaries, it can even lead to a total system destruction, we ran into that once when using sury.org repo for PHP7.3, making the system unbootable.

@clauderobi

This comment has been minimized.

Copy link

commented Aug 13, 2019

Thanks @MichaIng . It is a pity that the architecture identifier was not better taught of. Is there a comprehensive table that lists the various meaning for the same identifier....this is probably a necessity.

In my case, I am mostly using python and alpine. But sill, some binaries and/or library are needed. With alpine, do you know if armhf means armv6 or armv7?

@MichaIng

This comment has been minimized.

Copy link

commented Aug 13, 2019

@clauderobi
You mean Alpine Linux? https://www.alpinelinux.org/downloads/
There are two dedicated downloads for armhf and armv7. So I guess in this case armhf is RPi armv6 compatible, otherwise this differentiation would not make sense. But not sure, never used it.

If Python itself (and the -dev packages, in case) has been installed from proper sources (e.g. Raspbian repo, proper image or source build), the modules (and scripts/programs) themselves are generally architecture independent. To be sure one can use python-pip to have modules compiled directly, but this is against the Python version then, and otherwise independent from the arch as well, AFAIK.

So generally what I wrote applies for pre-compiled packages, binaries or images, which excludes runtime scripts/programs, like Python, Java, Node.js and stuff like that. Only the runtime system/compiler/dev tool itself needs to match the arch then.


Yeah indeed the RPi Foundation caused a lot of trouble by not following the Debian standards. On the other hand that time when RPi1 was released, I guess this was the best solution to take most out of the hardware. And finally they made SBCs available to this large range of end users. So great after all to have such a wide range of SBCs available now, including all the RPi competitors, even with this "small" amount RPi models where one has to take care about the architecture. I guess without RPi, ARM SBCs would have been generally developed much slower, no SBCs no architecture issues, but yeah what would I do without my RPi home server 😄.

@Tob1as

This comment has been minimized.

Copy link

commented Aug 15, 2019

Try with https://packagecloud.io/Hypriot/rpi/packages/raspbian/buster/containerd.io_1.2.6-1_armhf.deb/download.deb:

cd /tmp
wget https://packagecloud.io/Hypriot/rpi/packages/raspbian/buster/containerd.io_1.2.6-1_armhf.deb/download.deb
dpkg -i download.deb
rm download.deb
systemctl restart docker

I created a script for me to install it on Raspberry Pi.

My solution is this:

# ARMv6 (RaspberryPi 1) fix
install_docker_containerdio_armv6_fix () {
	if [[ "$(uname -m)" = "armv6"* ]]; then
		curl -fsSL https://packagecloud.io/Hypriot/rpi/gpgkey | sudo apt-key add -
		
		echo "deb https://packagecloud.io/Hypriot/rpi/$(. /etc/os-release; echo "$ID") \
			$(lsb_release -cs) main" | \
			sudo tee /etc/apt/sources.list.d/Hypriot_rpi.list
		
		sudo sh -c 'cat << EOF > /etc/apt/preferences.d/Hypriot_rpi
Package: containerd.io
Pin: origin packagecloud.io
Pin-Priority: 1001
EOF'
		
		sudo apt update
		sudo apt install -y --no-install-recommends --allow-downgrades containerd.io
		sudo systemctl restart docker
	fi
}

If anyone has a better idea, I'd be interested in it.

@melvyniandrag

This comment has been minimized.

Copy link

commented Aug 15, 2019

Thx @jalbert33 @brtwrst Installed packages from source:

  1. containerd.io_1.2.6-3_armhf.deb
  2. docker-ce-cli_19.03.13-0debian-buster_armhf.deb
  3. docker-ce_19.03.13-0debian-buster_armhf.deb

Still got a systemd error upon installing the last one. Rebooted, enabled and started service, and then ran successfully. Weird and not very confidence inspiring but if it verks it verks.

dockerRun

about my machine:

abtMyMachine

Edit: I just did an apt upgrade and it prompted me to upgrade docker-ce and cli. Weird? I just installed the latest debs.

upgrade

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
You can’t perform that action at this time.