This repository was archived by the owner on Jul 18, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2k
This repository was archived by the owner on Jul 18, 2025. It is now read-only.
Add support for Hypriot-OS on the Raspberry PI #3704
Copy link
Copy link
Open
Description
The folks over at http://blog.hypriot.com/ have built a custom raspbian-based distro which makes it easy to stand up a docker host on the Raspberry PI (and a few other ARM devices). However, when I try to add one of the new items to docker-machine, I get an "OS Type Unrecognized" error:
$ docker-machine -D create --driver generic --generic-ip-address=192.168.0.150 --generic-ssh-key=/Users/greylurk/.ssh/id_rsa --generic-ssh-user=pirate --engine-storage-driver=overlay docker-pi-1
Docker Machine Version: 0.8.0, build b85aac1
Found binary path at /usr/local/bin/docker-machine
Launching plugin server for driver generic
Plugin server listening at address 127.0.0.1:52931
() Calling .GetVersion
Using API Version 1
() Calling .SetConfigRaw
() Calling .GetMachineName
(flag-lookup) Calling .GetMachineName
(flag-lookup) Calling .DriverName
(flag-lookup) Calling .GetCreateFlags
Found binary path at /usr/local/bin/docker-machine
Launching plugin server for driver generic
Plugin server listening at address 127.0.0.1:52935
() Calling .GetVersion
Using API Version 1
() Calling .SetConfigRaw
() Calling .GetMachineName
(docker-pi-1) Calling .GetMachineName
(docker-pi-1) Calling .DriverName
(docker-pi-1) Calling .GetCreateFlags
(docker-pi-1) Calling .SetConfigFromFlags
Running pre-create checks...
(docker-pi-1) Calling .PreCreateCheck
(docker-pi-1) Calling .GetConfigRaw
Creating machine...
(docker-pi-1) Calling .Create
(docker-pi-1) Importing SSH key...
(docker-pi-1) DBG | IP: 192.168.0.150
(docker-pi-1) Calling .GetConfigRaw
(docker-pi-1) Calling .DriverName
(docker-pi-1) Calling .DriverName
Waiting for machine to be running, this may take a few minutes...
(docker-pi-1) Calling .GetState
Detecting operating system of created instance...
Waiting for SSH to be available...
Getting to WaitForSSH function...
(docker-pi-1) Calling .GetSSHHostname
(docker-pi-1) Calling .GetSSHPort
(docker-pi-1) Calling .GetSSHKeyPath
(docker-pi-1) Calling .GetSSHKeyPath
(docker-pi-1) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/greylurk/.docker/machine/machines/docker-pi-1/id_rsa (-rw-------)
&{[-F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none pirate@192.168.0.150 -o IdentitiesOnly=yes -i /Users/greylurk/.docker/machine/machines/docker-pi-1/id_rsa -p 22] /usr/bin/ssh <nil>}
About to run SSH command:
exit 0
SSH cmd err, output: <nil>:
Detecting the provisioner...
(docker-pi-1) Calling .GetSSHHostname
(docker-pi-1) Calling .GetSSHPort
(docker-pi-1) Calling .GetSSHKeyPath
(docker-pi-1) Calling .GetSSHKeyPath
(docker-pi-1) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/greylurk/.docker/machine/machines/docker-pi-1/id_rsa (-rw-------)
&{[-F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none pirate@192.168.0.150 -o IdentitiesOnly=yes -i /Users/greylurk/.docker/machine/machines/docker-pi-1/id_rsa -p 22] /usr/bin/ssh <nil>}
About to run SSH command:
cat /etc/os-release
SSH cmd err, output: <nil>: PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
NAME="Raspbian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
HYPRIOT_OS="HypriotOS/armhf"
HYPRIOT_OS_VERSION="v1.0.0"
HYPRIOT_DEVICE="Raspberry Pi"
HYPRIOT_IMAGE_VERSION="v1.0.0"
Couldn't set key HYPRIOT_OS, no corresponding struct field found
Couldn't set key HYPRIOT_OS_VERSION, no corresponding struct field found
Couldn't set key HYPRIOT_DEVICE, no corresponding struct field found
Couldn't set key HYPRIOT_IMAGE_VERSION, no corresponding struct field found
Error creating machine: Error detecting OS: OS type not recognized
notifying bugsnag: [Error creating machine: Error detecting OS: OS type not recognized]
If I edit the "ID=" field in /etc/os-release on the raspberry pi to read "ID=debian" instead of "ID=raspbian" then it works fine, so the fix might be to fall back to the ID_LIKE if the ID field isn't recognized, but I'm not sure how that affects other debian derivatives
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels