Docker image containing GOLANG that is compatible to the Raspberry Pi.
make build
make version
- First, use a
docker login
with username, password and email address - Second, push Docker Image to the official Docker Hub
make push
Build SD card image for ODROID C1 and C1+
Home Page: http://blog.hypriot.com/post/how-to-get-docker-working-on-your-favourite-arm-board-with-hypriotos/
License: MIT License
Docker image containing GOLANG that is compatible to the Raspberry Pi.
make build
make version
docker login
with username, password and email addressmake push
For better versioning we should write some values to /etc/os-release
Example:
HYPRIOT_OS="HypriotOS/armhf"
HYPRIOT_OS_VERSION="v0.6.1"
HYPRIOT_DEVICE="ODROID C1/C1+"
HYPRIOT_IMAGE_VERSION="v0.1.1"
See also hypriot/os-rootfs#20
Hi,
I'd suggest to add some settings for the image generation procedure which will help to increase the SD card lifetime:
mkfs.ext4 -O ^has_journal -b 4096 -U 9d5de372-3a98-4c65-a236-40d7912153b4 ...
/
to /etc/fstab
likeUUID=9d5de372-3a98-4c65-a236-40d7912153b4 / ext4 errors=remount-ro,noatime,nodiratime 0 1
Following the instructions I get an error building the boot2docker VM
$ make docker-machine
vagrant up
...
==> default: Setting up cgroup-lite (1.9) ...
==> default: cgroup-lite start/running
==> default: Processing triggers for libc-bin (2.19-0ubuntu6.9) ...
==> default: Processing triggers for ureadahead (0.100.0-16) ...
docker-machine create -d generic \
--generic-ssh-user vagrant \
--generic-ssh-key /home/max/work/odroid/HypriotOS/ib-odroid-c1/.vagrant/machines/default/virtualbox/private_key \
--generic-ip-address 127.0.0.1 \
--generic-ssh-port 2201 \
image-builder-odroid-c1
Host already exists: "image-builder-odroid-c1"
Makefile:25: recipe for target 'docker-machine' failed
make: *** [docker-machine] Error 1
OS: Debian Sid unstable (uptodate 21.08.2017)
docker-machine version 0.12.2
vagrant 1.9.1
virtualbox 5.126
Any suggestions?
We should set a label for each partition. This makes it easy to e.g. find the "root" partition regardless of the partition layout (which might differ between devices or setups).
Hi there,
I justed downloaded release 0.1.0 and booted it on the Odroid C1 (original, non-plus Version).
As I did not see it asking for an IP Address, I used an TTL Converter and the Serial console.
Turns out, the Odroid C1 does boot, but it does not use dhclient for unknown reason.
Also, I can only use ifconfig with sudo:
HypriotOS/armv7: pirate@black-pearl in ~
$ ifconfig
-bash: ifconfig: command not found
HypriotOS/armv7: pirate@black-pearl in ~
however -
$ sudo ifconfig
works.
After doing an
sudo dhclient eth0
the Odroid got an IP Address - but without that - it does not work.
After adding some container with docker via ssh I've restarted the board and I can't access it via SSH.
I don't know what is the problem with HypriotOS.
Add the version number to the filename of the SD-Card image and ZIP filename to avoid outdated downloads.
See image-builder-rpi https://github.com/hypriot/image-builder-rpi/pull/14/files for the approach there.
When creating the SD image with make sd-image
there is an error installing the ODROID C1 kernel via apt-get install -y linux-image-c1
. Here is the command that errors https://github.com/hypriot/image-builder-odroid-c1/blob/master/devicefiles/chroot-script.sh#L25.
The build logs shows this details:
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
kernel-common linux-image-3.10.80-135 ucf
Suggested packages:
kernel-package fdutils linux-doc-3.10.80-135 linux-source-3.10.80-135
linux-image-3.10.80-135-dbg linux-manual-3.10.80-135
The following NEW packages will be installed:
kernel-common linux-image-3.10.80-135 linux-image-c1 ucf
0 upgraded, 4 newly installed, 0 to remove and 24 not upgraded.
Need to get 12.0 MB of archives.
After this operation, 35.8 MB of additional disk space will be used.
Get:1 http://deb.odroid.in/c1/ trusty/main linux-image-3.10.80-135 armhf 20151128 [11.8 MB]
Get:2 http://httpredir.debian.org/debian/ jessie/main ucf all 3.0030 [69.7 kB]
Get:3 http://httpredir.debian.org/debian/ jessie/main kernel-common all 13.014+nmu1 [132 kB]
Get:4 http://deb.odroid.in/c1/ trusty/main linux-image-c1 armhf 135-1 [988 B]
Preconfiguring packages ...
Fetched 12.0 MB in 4s (2621 kB/s)
Selecting previously unselected package linux-image-3.10.80-135.
(Reading database ... 11161 files and directories currently installed.)
Preparing to unpack .../linux-image-3.10.80-135_20151128_armhf.deb ...
Done.
Unpacking linux-image-3.10.80-135 (20151128) ...
Selecting previously unselected package ucf.
Preparing to unpack .../archives/ucf_3.0030_all.deb ...
Moving old data out of the way
Unpacking ucf (3.0030) ...
Selecting previously unselected package kernel-common.
Preparing to unpack .../kernel-common_13.014+nmu1_all.deb ...
Unpacking kernel-common (13.014+nmu1) ...
Selecting previously unselected package linux-image-c1.
Preparing to unpack .../linux-image-c1_135-1_armhf.deb ...
Unpacking linux-image-c1 (135-1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up linux-image-3.10.80-135 (20151128) ...
Hmm. There is a symbolic link /lib/modules/3.10.80-135/build
However, I can not read it: No such file or directory
Therefore, I am deleting /lib/modules/3.10.80-135/build
Hmm. The package shipped with a symbolic link /lib/modules/3.10.80-135/source
However, I can not read the target: No such file or directory
Therefore, I am deleting /lib/modules/3.10.80-135/source
Running depmod.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.10.80-135 /boot/uImage-3.10.80-135
run-parts: executing /etc/kernel/postinst.d/copy_dtb 3.10.80-135 /boot/uImage-3.10.80-135
run-parts: executing /etc/kernel/postinst.d/uImage 3.10.80-135 /boot/uImage-3.10.80-135
run-parts: executing /etc/kernel/postinst.d/uInitrd 3.10.80-135 /boot/uImage-3.10.80-135
/usr/bin/mkimage: Can't open /boot/initrd.img-3.10.80-135: No such file or directory
run-parts: /etc/kernel/postinst.d/uInitrd exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.10.80-135.postinst line 391, <STDIN> line 2.
dpkg: error processing package linux-image-3.10.80-135 (--configure):
subprocess installed post-installation script returned error exit status 2
Setting up ucf (3.0030) ...
Setting up kernel-common (13.014+nmu1) ...
dpkg: dependency problems prevent configuration of linux-image-c1:
linux-image-c1 depends on linux-image-3.10.80-135; however:
Package linux-image-3.10.80-135 is not configured yet.
dpkg: error processing package linux-image-c1 (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
linux-image-3.10.80-135
linux-image-c1
I would like to know how can I update to the latest release provided here : https://github.com/hypriot/image-builder-odroid-c1/releases/tag/v0.4.2
without having to reflash my current microSD cards or restarting all from scratch.
Thanx.
Hi I'm trying to do the step by step of the following tutorial and it doesn't work quiet as expected:
https://blog.hypriot.com/post/how-to-setup-rpi-docker-swarm/
I've created 2 devices and it seems that there is no password for root user so all the ssh things doesn't work.
I tried the password for username root password hypriot but it doesn't work.
I've read somewhere that the root account was removed ... is it true?
thanx
Hi guys I'm stucked again with Traefick and Docker Swarm.
I tried to use this tutorial :
https://docs.traefik.io/user-guide/swarm-mode/
On my 2 Odroid C1 boards I have :
1 manager node
1 worker node
The part where it doesn't work is at this step
docker service create
--name traefik
--constraint=node.role==manager
--publish 80:80 --publish 8080:8080
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock
--network traefik-net
hypriot/rpi-traefik
--docker
--docker.swarmmode
--docker.domain=traefik
--docker.watch
--web
Screenshots of Portainer
In Portainer I can see the error message for this container:
The kernel I use is:
Linux server1 3.10.104-186 #1 SMP PREEMPT Mon Mar 20 11:48:07 UTC 2017 armv7l GNU/Linux
Containers: 16
Running: 7
Paused: 0
Stopped: 9
Images: 236
Server Version: 17.04.0-ce
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 327
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Swarm: active
NodeID: uuohul0pha427ijm0323vzhyw
Is Manager: true
ClusterID: ae3sayj5fn5y55mem4xkcppq2
Managers: 1
Nodes: 2
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Number of Old Snapshots to Retain: 0
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Node Address: 192.168.1.3
Manager Addresses:
192.168.1.3:2377
Runtimes: runc
Default Runtime: runc
Init Binary:
containerd version: 422e31ce907fd9c3833a38d7b8fdd023e5a76e73
runc version: 9c2d8d184e5da67c95d601382adf14862e4f2228
init version: 949e6fa
Security Options:
apparmor
Kernel Version: 3.10.104-186
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 940.9MiB
Name: server1
ID: 7GHE:CHRG:TDC4:UOTO:3JWM:2ZYU:CHBN:AMIE:W45Y:I5G7:AMSK:ETMY
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No kernel memory limit support
From #38:
$ sudo device-init hostname set traefik
panic: runtime error: index out of range
goroutine 1 [running]:
github.com/hypriot/device-init/cmd.activeInterfaces(0x0, 0x0, 0x0)
/opt/gopath/src/github.com/hypriot/device-init/cmd/hostname_set.go:123 +0x31c
github.com/hypriot/device-init/cmd.setHostname(0x108a5dfc, 0x1, 0x1)
/opt/gopath/src/github.com/hypriot/device-init/cmd/hostname_set.go:86 +0x50c
github.com/hypriot/device-init/cmd.glob.func5(0x670c30, 0x108206d0, 0x1, 0x1)
/opt/gopath/src/github.com/hypriot/device-init/cmd/hostname_set.go:39 +0xa4
github.com/spf13/cobra.(*Command).execute(0x670c30, 0x10820688, 0x1, 0x1, 0x0, 0x0)
/opt/gopath/src/github.com/hypriot/device-init/Godeps/_workspace/src/github.com/spf13/cobra/command.go:569 +0x664
github.com/spf13/cobra.(*Command).ExecuteC(0x670d28, 0x670c30, 0x0, 0x0)
/opt/gopath/src/github.com/hypriot/device-init/Godeps/_workspace/src/github.com/spf13/cobra/command.go:656 +0x440
github.com/spf13/cobra.(*Command).Execute(0x670d28, 0x0, 0x0)
/opt/gopath/src/github.com/hypriot/device-init/Godeps/_workspace/src/github.com/spf13/cobra/command.go:615 +0x28
github.com/hypriot/device-init/cmd.Execute()
/opt/gopath/src/github.com/hypriot/device-init/cmd/root.go:53 +0x20
main.main()
/opt/gopath/src/github.com/hypriot/device-init/main.go:28 +0x14
I had an old version of the rootfs tgz sitting in my working directory. When pulling the latest version and running make sdimage
, the build had many errors related to the outdated rootfs.
As we are using a distinct version of the rootfs for building, I propose to just change the ROOTFS_TAR_PATH
to include the rootfs version. So can be sure a new version will be downloaded for everyone as soon as we update the version in the build script.
This problem I'm having might be the same reason and related to this old kernel bug we found and fixed.
Further investigation about this ticket and possible link with old closed ticket #38
@docbobo I would like to have your perspective on this problem.
This is a brief description of my setup.
Running Docke Swarm cluster
(2) Odroid C1 armhfv7(arm32) servers
(10) Odroid C2 aarch64(arm64) servers
Docker version arm32
Client:
Version: 17.05.0-ce
API version: 1.29
Go version: go1.7.5
Git commit: 89658be
Built: Thu May 4 22:28:23 2017
OS/Arch: linux/arm
Server:
Version: 17.05.0-ce
API version: 1.29 (minimum version 1.12)
Go version: go1.7.5
Git commit: 89658be
Built: Thu May 4 22:28:23 2017
OS/Arch: linux/arm
Experimental: false
$ uname -a
Linux bambuserver2 3.10.104 #1 SMP PREEMPT Sun Jun 4 07:54:52 UTC 2017 armv7l GNU/Linux
Docker version arm64
Client:
Version: 17.05.0-ce
API version: 1.29
Go version: go1.7.5
Git commit: 89658bed6
Built: Tue May 9 07:22:23 2017
OS/Arch: linux/arm64
Server:
Version: 17.05.0-ce
API version: 1.29 (minimum version 1.12)
Go version: go1.7.5
Git commit: 89658bed6
Built: Tue May 9 07:22:23 2017
OS/Arch: linux/arm64
Experimental: false
$ uname -a
Linux bambuserver12 3.14.79-109 #1 SMP PREEMPT Thu Mar 16 20:05:25 BRT 2017 aarch64 GNU/Linux
docker info arm32
Containers: 3
Running: 3
Paused: 0
Stopped: 0
Images: 414
Server Version: 17.05.0-ce
Storage Driver: aufs
Root Dir: /mnt/virtual/var/lib/docker/aufs
Backing Filesystem: <unknown>
Dirs: 561
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local local-persist
Network: bridge host macvlan null overlay
Swarm: active
NodeID: m7uvwoo1s1335vy20evjz9752
Is Manager: true
ClusterID: v1wra9jgbzas12b639h5oc5fm
Managers: 1
Nodes: 12
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Number of Old Snapshots to Retain: 0
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Node Address: 192.168.1.3
Manager Addresses:
192.168.1.3:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9048e5e50717ea4497b757314bad98ea3763c145
runc version: 9c2d8d184e5da67c95d601382adf14862e4f2228
init version: 949e6fa
Security Options:
apparmor
Kernel Version: 3.10.104
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 940.9MiB
Name: bambuserver1
ID: 7GHE:CHRG:TDC4:UOTO:3JWM:2ZYU:CHBN:AMIE:W45Y:I5G7:AMSK:ETMY
Docker Root Dir: /mnt/virtual/var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No kernel memory limit support
docker info arm64
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 2
Server Version: 17.05.0-ce
Storage Driver: aufs
Root Dir: /mnt/virtual/var/lib/docker/aufs
Backing Filesystem: <unknown>
Dirs: 8
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local local-persist
Network: bridge host macvlan null overlay
Swarm: active
NodeID: apddjnzk1njxiqwlm5l8pan0h
Is Manager: false
Node Address: 192.168.1.14
Manager Addresses:
192.168.1.3:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9048e5e50717ea4497b757314bad98ea3763c145
runc version: 9c2d8d184e5da67c95d601382adf14862e4f2228
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 3.14.79-109
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: aarch64
CPUs: 4
Total Memory: 1.928GiB
Name: bambuserver12
ID: B64M:RE77:NE6P:CZWV:7XNT:DQ3B:SVYF:LDL5:JHVX:VY2V:GFEB:J7CV
Docker Root Dir: /mnt/virtual/var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Check config arm32
info: reading kernel config from /proc/config.gz ...
Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_CPUSETS: enabled
- CONFIG_MEMCG: enabled
- CONFIG_KEYS: enabled
- CONFIG_VETH: enabled (as module)
- CONFIG_BRIDGE: enabled
- CONFIG_BRIDGE_NETFILTER: enabled
- CONFIG_NF_NAT_IPV4: enabled (as module)
- CONFIG_IP_NF_FILTER: enabled (as module)
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_IPVS: enabled (as module)
- CONFIG_IP_NF_NAT: missing
- CONFIG_NF_NAT: enabled (as module)
- CONFIG_NF_NAT_NEEDED: enabled
- CONFIG_POSIX_MQUEUE: enabled
- CONFIG_DEVPTS_MULTIPLE_INSTANCES: enabled
Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: missing
- CONFIG_CGROUP_PIDS: missing
- CONFIG_MEMCG_SWAP: enabled
- CONFIG_MEMCG_SWAP_ENABLED: enabled
(cgroup swap accounting is currently enabled)
- CONFIG_MEMCG_KMEM: missing
- CONFIG_RESOURCE_COUNTERS: enabled
- CONFIG_BLK_CGROUP: enabled
- CONFIG_BLK_DEV_THROTTLING: missing
- CONFIG_IOSCHED_CFQ: enabled
- CONFIG_CFQ_GROUP_IOSCHED: missing
- CONFIG_CGROUP_PERF: enabled
- CONFIG_CGROUP_HUGETLB: missing
- CONFIG_NET_CLS_CGROUP: enabled (as module)
- CONFIG_NETPRIO_CGROUP: missing
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_RT_GROUP_SCHED: enabled
- CONFIG_IP_VS: enabled (as module)
- CONFIG_IP_VS_NFCT: enabled
- CONFIG_IP_VS_RR: enabled (as module)
- CONFIG_EXT3_FS: missing
- CONFIG_EXT3_FS_XATTR: missing
- CONFIG_EXT3_FS_POSIX_ACL: missing
- CONFIG_EXT3_FS_SECURITY: missing
(enable these ext3 configs if you are using ext3 as backing filesystem)
- CONFIG_EXT4_FS: enabled
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
- Network Drivers:
- "overlay":
- CONFIG_VXLAN: enabled (as module)
Optional (for encrypted networks):
- CONFIG_CRYPTO: enabled
- CONFIG_CRYPTO_AEAD: enabled
- CONFIG_CRYPTO_GCM: missing
- CONFIG_CRYPTO_SEQIV: enabled
- CONFIG_CRYPTO_GHASH: missing
- CONFIG_XFRM: enabled
- CONFIG_XFRM_USER: enabled (as module)
- CONFIG_XFRM_ALGO: enabled
- CONFIG_INET_ESP: enabled
- CONFIG_INET_XFRM_MODE_TRANSPORT: enabled
- "ipvlan":
- CONFIG_IPVLAN: missing
- "macvlan":
- CONFIG_MACVLAN: enabled (as module)
- CONFIG_DUMMY: missing
- "ftp,tftp client in container":
- CONFIG_NF_NAT_FTP: enabled (as module)
- CONFIG_NF_CONNTRACK_FTP: enabled (as module)
- CONFIG_NF_NAT_TFTP: enabled (as module)
- CONFIG_NF_CONNTRACK_TFTP: enabled (as module)
- Storage Drivers:
- "aufs":
- CONFIG_AUFS_FS: enabled
- "btrfs":
- CONFIG_BTRFS_FS: enabled (as module)
- CONFIG_BTRFS_FS_POSIX_ACL: enabled
- "devicemapper":
- CONFIG_BLK_DEV_DM: enabled
- CONFIG_DM_THIN_PROVISIONING: enabled (as module)
- "overlay":
- CONFIG_OVERLAY_FS: missing
- "zfs":
- /dev/zfs: missing
- zfs command: missing
- zpool command: missing
Limits:
- /proc/sys/kernel/keys/root_maxkeys: 1000000
Check config arm64
info: reading kernel config from /proc/config.gz ...
Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- apparmor: enabled and tools installed
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_CPUSETS: enabled
- CONFIG_MEMCG: enabled
- CONFIG_KEYS: enabled
- CONFIG_VETH: enabled (as module)
- CONFIG_BRIDGE: enabled (as module)
- CONFIG_BRIDGE_NETFILTER: enabled
- CONFIG_NF_NAT_IPV4: enabled (as module)
- CONFIG_IP_NF_FILTER: enabled (as module)
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_IPVS: enabled (as module)
- CONFIG_IP_NF_NAT: missing
- CONFIG_NF_NAT: enabled (as module)
- CONFIG_NF_NAT_NEEDED: enabled
- CONFIG_POSIX_MQUEUE: enabled
- CONFIG_DEVPTS_MULTIPLE_INSTANCES: enabled
Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: enabled
- CONFIG_CGROUP_PIDS: missing
- CONFIG_MEMCG_SWAP: enabled
- CONFIG_MEMCG_SWAP_ENABLED: enabled
(cgroup swap accounting is currently enabled)
- CONFIG_MEMCG_KMEM: enabled
- CONFIG_RESOURCE_COUNTERS: enabled
- CONFIG_BLK_CGROUP: enabled
- CONFIG_BLK_DEV_THROTTLING: enabled
- CONFIG_IOSCHED_CFQ: enabled
- CONFIG_CFQ_GROUP_IOSCHED: enabled
- CONFIG_CGROUP_PERF: enabled
- CONFIG_CGROUP_HUGETLB: enabled
- CONFIG_NET_CLS_CGROUP: enabled (as module)
- CONFIG_CGROUP_NET_PRIO: enabled
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_RT_GROUP_SCHED: enabled
- CONFIG_IP_VS: enabled (as module)
- CONFIG_IP_VS_NFCT: enabled
- CONFIG_IP_VS_RR: enabled (as module)
- CONFIG_EXT3_FS: missing
- CONFIG_EXT3_FS_XATTR: missing
- CONFIG_EXT3_FS_POSIX_ACL: missing
- CONFIG_EXT3_FS_SECURITY: missing
(enable these ext3 configs if you are using ext3 as backing filesystem)
- CONFIG_EXT4_FS: enabled
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
- Network Drivers:
- "overlay":
- CONFIG_VXLAN: enabled (as module)
Optional (for encrypted networks):
- CONFIG_CRYPTO: enabled
- CONFIG_CRYPTO_AEAD: enabled
- CONFIG_CRYPTO_GCM: missing
- CONFIG_CRYPTO_SEQIV: enabled
- CONFIG_CRYPTO_GHASH: missing
- CONFIG_XFRM: enabled
- CONFIG_XFRM_USER: enabled (as module)
- CONFIG_XFRM_ALGO: enabled
- CONFIG_INET_ESP: enabled
- CONFIG_INET_XFRM_MODE_TRANSPORT: enabled
- "ipvlan":
- CONFIG_IPVLAN: missing
- "macvlan":
- CONFIG_MACVLAN: enabled (as module)
- CONFIG_DUMMY: enabled (as module)
- "ftp,tftp client in container":
- CONFIG_NF_NAT_FTP: enabled (as module)
- CONFIG_NF_CONNTRACK_FTP: enabled (as module)
- CONFIG_NF_NAT_TFTP: enabled (as module)
- CONFIG_NF_CONNTRACK_TFTP: enabled (as module)
- Storage Drivers:
- "aufs":
- CONFIG_AUFS_FS: enabled (as module)
- "btrfs":
- CONFIG_BTRFS_FS: enabled (as module)
- CONFIG_BTRFS_FS_POSIX_ACL: enabled
- "devicemapper":
- CONFIG_BLK_DEV_DM: enabled (as module)
- CONFIG_DM_THIN_PROVISIONING: enabled (as module)
- "overlay":
- CONFIG_OVERLAY_FS: enabled (as module)
- "zfs":
- /dev/zfs: missing
- zfs command: missing
- zpool command: missing
Limits:
- /proc/sys/kernel/keys/root_maxkeys: 1000000
==========================================
Steps to reproduce the problem...
docker network create -d overlay traefik-net
create a docker-compose.yml for initial stack
version: "3"
networks:
traefik-net:
external: true
services:
traefik:
image: hypriot/rpi-traefik
ports:
- "80:80"
- "443:443"
#- "8080:8080"
command: --web --docker --docker.swarmmode=true --docker.watch=true --docker.domain=cluster.publicvm.com -l DEBUG
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
networks:
- traefik-net
deploy:
placement:
constraints:
- node.role==manager
#- node.hostname==bambuserver1
restart_policy:
condition: on-failure
labels:
traefik.docker: "true"
traefik.docker.network: "traefik-net"
traefik.port: 8080
traefik.backend.loadbalancer.sticky: "true"
traefik.backend.loadbalancer.method: "wrr"
#traefik.backend.loadbalancer.swarm: "true"
traefik.frontend.passHostHeader: "true"
traefik.frontend.rule: "Host:traefik-admin.cluster.publicvm.com"
portainer:
depends_on: [ traefik ]
image: portainer/portainer:linux-arm-1.13.1
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- portainer-datas:/data
networks:
- traefik-net
#ports:
#- 9000:9000
deploy:
placement:
constraints:
- node.role == manager
#- node.hostname==bambuserver1
restart_policy:
condition: on-failure
labels:
traefik.enable: "true"
traefik.docker.network: "traefik-net"
traefik.port: "9000"
traefik.backend.loadbalancer.sticky: "true"
traefik.backend.loadbalancer.method: "wrr"
#traefik.backend.loadbalancer.swarm: "true"
traefik.frontend.passHostHeader: "true"
traefik.frontend.rule: "Host:portainer.cluster.publicvm.com"
gitea:
depends_on: [ portainer ]
image: bambuserver1:5000/ergu/gitea-arm:1.1.1
volumes:
- gitea-datas:/data
networks:
- traefik-net
ports:
- 3022:22
#- 3000:3000
deploy:
placement:
constraints:
- node.role==manager
#- node.hostname == bambuserver2
restart_policy:
condition: on-failure
labels:
traefik.enable: "true"
traefik.docker.network: "traefik-net"
traefik.port: "3000"
traefik.backend.loadbalancer.sticky: "true"
traefik.backend.loadbalancer.method: "wrr"
#traefik.backend.loadbalancer.swarm: "true"
traefik.frontend.passHostHeader: "true"
traefik.frontend.rule: "Host:gitea.cluster.publicvm.com"
volumes:
portainer-datas:
driver: local-persist
driver_opts:
type: volume
mountpoint: /mnt/virtual/docker/containers/portainer
gitea-datas:
driver: local-persist
driver_opts:
type: volume
mountpoint: /mnt/virtual/docker/containers/gitea
version: "3.2"
networks:
traefik-net:
external: true
services:
server:
image: bambuserver1:5000/ergu/drone-arm32:0.7.1
networks:
- traefik-net
deploy:
labels:
traefik.enable: "true"
traefik.docker.network: "traefik-net"
traefik.port: "8000"
traefik.backend.loadbalancer.sticky: "true"
traefik.backend.loadbalancer.method: "drr"
traefik.backend.loadbalancer.swarm: "true"
traefik.frontend.passHostHeader: "true"
traefik.frontend.rule: "Host:drone.cluster.publicvm.com"
placement:
constraints:
- node.hostname==bambuserver2
ports:
- 8000:8000
volumes:
- drone-datas:/var/lib/drone
environment:
- DRONE_ADMIN=administrator
- DRONE_DEBUG=true
- DRONE_OPEN=false
- DRONE_HOST=http://server:8000/
- DRONE_SECRET=${DRONE_SECRET}
- DRONE_SERVER_PORT=${DRONE_SERVER_PORT}
- DRONE_GOGS=true
- DRONE_GOGS_URL=http://gitea.cluster.publicvm.com/
- DRONE_GOGS_SKIP_VERIFY=true
- DRONE_PLUGIN_PRIVILEGED=armhfplugins/docker,armhfplugins/drone-docker
agent:
depends_on: [ server ]
image: bambuserver1:5000/ergu/drone-arm32:0.7.1
networks:
- traefik-net
command: agent
deploy:
placement:
constraints:
- node.hostname==bambuserver2
volumes: [ "/var/run/docker.sock:/var/run/docker.sock" ]
environment:
- DRONE_SERVER=ws://server:8000/ws/broker
- DRONE_SECRET=${DRONE_SECRET}
- DRONE_DEBUG=true
volumes:
drone-datas:
driver: local-persist
driver_opts:
type: volume
mountpoint: /mnt/virtual/docker/volumes/drone/
What is expected as result:
Go in your browser and all calls to the url http://drone.cluster.publicvm.com/ should go through Traefik and then routed to the drone_server service on bambuserver2 which is a worker node. The login page from drone should be displayed.
What is actually happening:
Traefik is not able to go out of the Swarm Manager and route the request to bambuserver2. Instead this error message is shown in the logs:
time="2017-06-04T04:12:55Z" level=debug msg="Round trip: http://10.0.0.3:8080, code: 200, duration: 1.712028ms"
time="2017-06-04T04:12:56Z" level=warning msg="Error forwarding to http://10.0.0.9:8000, err: dial tcp 10.0.0.9:8000: i/o timeout"
time="2017-06-04T04:12:57Z" level=debug msg="Round trip: http://10.0.0.3:8080, code: 200, duration: 2.247036ms"
I've talked with @emilevauge from Traefik and he told me that this is not a Traefik bug but rather a docker bug. Then @firecyberice had tried my setup on amd64 architecture via playwithdocker and he was able to run my config without a problem. Based on his results and tests I've come up with the conclusion that some other disabled kernel options like - CONFIG_VXLAN: missing in ticket #38 are blocking the routing within docker and hypriotOS
I'm not 100% sure about this but I would say 90% close to the root of the problem. Since I don't know which other kernel options are necessary so to successfully route overlay networks packets between nodes.
@docbobo @firecyberice and maybe others can help us on this bug.
Screenshots of the networks in my Swarm Manager
Screenshots of the networks in worker node 1 (bambuserver2)
Traefik redirecting successfully the 3 services in inital stack (please look at urls and traefik tab)
Traefik showing error for the 4th service on bambuserver2
What is inside the log from Traefik
time="2017-06-04T04:12:55Z" level=debug msg="Round trip: http://10.0.0.3:8080, code: 200, duration: 1.712028ms"
time="2017-06-04T04:12:56Z" level=warning msg="Error forwarding to http://10.0.0.9:8000, err: dial tcp 10.0.0.9:8000: i/o timeout"
time="2017-06-04T04:12:57Z" level=debug msg="Round trip: http://10.0.0.3:8080, code: 200, duration: 2.247036ms"
Good day everyone,
I would like to change the hostname of my boards and unfortunately it doesn't work,
I tried this tutorial and no success... am I missing something with hostname renaming?
https://www.howtogeek.com/50631/how-to-change-your-linux-hostname-without-rebooting/
The bootloader configuration does not enable the HDMI output. At least for me it doesn't work.
We should probably change that as most people won't have a UART kit for diagnosing problems.
Docker Engine 1.10.0
Docker Compose 1.6.0
update serverspec tests
Hi @docbobo I've downloaded the latest release and it seems that you didn't integrate the bug fix concerning the last bug we worked on together : #38
Testes image : https://github.com/hypriot/image-builder-odroid-c1/releases/tag/v0.4.2
After a fresh install on my Odroid C1 check-config.sh shows :
$ ./check-config.sh
info: reading kernel config from /proc/config.gz ...
Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_CPUSETS: enabled
- CONFIG_MEMCG: enabled
- CONFIG_KEYS: enabled
- CONFIG_VETH: enabled (as module)
- CONFIG_BRIDGE: enabled
- CONFIG_BRIDGE_NETFILTER: enabled
- CONFIG_NF_NAT_IPV4: enabled (as module)
- CONFIG_IP_NF_FILTER: enabled (as module)
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled (as module)
- CONFIG_NETFILTER_XT_MATCH_IPVS: enabled (as module)
- CONFIG_IP_NF_NAT: missing
- CONFIG_NF_NAT: enabled (as module)
- CONFIG_NF_NAT_NEEDED: enabled
- CONFIG_POSIX_MQUEUE: enabled
- CONFIG_DEVPTS_MULTIPLE_INSTANCES: enabled
Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: missing
- CONFIG_CGROUP_PIDS: missing
- CONFIG_MEMCG_SWAP: enabled
- CONFIG_MEMCG_SWAP_ENABLED: enabled
(cgroup swap accounting is currently enabled)
- CONFIG_MEMCG_KMEM: missing
- CONFIG_RESOURCE_COUNTERS: enabled
- CONFIG_BLK_CGROUP: enabled
- CONFIG_BLK_DEV_THROTTLING: missing
- CONFIG_IOSCHED_CFQ: enabled
- CONFIG_CFQ_GROUP_IOSCHED: missing
- CONFIG_CGROUP_PERF: enabled
- CONFIG_CGROUP_HUGETLB: missing
- CONFIG_NET_CLS_CGROUP: enabled (as module)
- CONFIG_NETPRIO_CGROUP: missing
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_RT_GROUP_SCHED: enabled
- CONFIG_IP_VS: enabled (as module)
- CONFIG_IP_VS_NFCT: enabled
- CONFIG_IP_VS_RR: enabled (as module)
- CONFIG_EXT3_FS: missing
- CONFIG_EXT3_FS_XATTR: missing
- CONFIG_EXT3_FS_POSIX_ACL: missing
- CONFIG_EXT3_FS_SECURITY: missing
(enable these ext3 configs if you are using ext3 as backing filesystem)
- CONFIG_EXT4_FS: enabled
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
- Network Drivers:
- "overlay":
- CONFIG_VXLAN: missing
Optional (for encrypted networks):
- CONFIG_CRYPTO: enabled
- CONFIG_CRYPTO_AEAD: enabled
- CONFIG_CRYPTO_GCM: missing
- CONFIG_CRYPTO_SEQIV: enabled
- CONFIG_CRYPTO_GHASH: missing
- CONFIG_XFRM: enabled
- CONFIG_XFRM_USER: enabled (as module)
- CONFIG_XFRM_ALGO: enabled
- CONFIG_INET_ESP: enabled
- CONFIG_INET_XFRM_MODE_TRANSPORT: enabled
- "ipvlan":
- CONFIG_IPVLAN: missing
- "macvlan":
- CONFIG_MACVLAN: enabled (as module)
- CONFIG_DUMMY: missing
- "ftp,tftp client in container":
- CONFIG_NF_NAT_FTP: enabled (as module)
- CONFIG_NF_CONNTRACK_FTP: enabled (as module)
- CONFIG_NF_NAT_TFTP: enabled (as module)
- CONFIG_NF_CONNTRACK_TFTP: enabled (as module)
- Storage Drivers:
- "aufs":
- CONFIG_AUFS_FS: enabled
- "btrfs":
- CONFIG_BTRFS_FS: enabled (as module)
- CONFIG_BTRFS_FS_POSIX_ACL: enabled
- "devicemapper":
- CONFIG_BLK_DEV_DM: enabled
- CONFIG_DM_THIN_PROVISIONING: enabled (as module)
- "overlay":
- CONFIG_OVERLAY_FS: missing
- "zfs":
- /dev/zfs: missing
- zfs command: missing
- zpool command: missing
Limits:
- /proc/sys/kernel/keys/root_maxkeys: 1000000
- "overlay":
- CONFIG_VXLAN: missing
@docbobo @StefanScherer Hi I got a new Odroid C1 drive that I've flashed with the latest v0.4.2 release.
It seems that HDMI doesn't work...
This command systemctl enable docker
seem to not working right now when used in a chroot environment while building the SD card image https://github.com/hypriot/image-builder-odroid-c1/blob/master/builder/chroot-script.sh#L42.
Has to investigated what's going wrong here. When I'm using the same command on the real ODROID machine, everything works fine and the Docker engine is started on the next system boot.
Since we installed the ODROID kernel in a chroot env, the u-boot isn't flashed into the SD image sectors.
This has to be done as soon as we have the image file created, but can be also done as the very last step as well.
One example how to do this can be found here https://github.com/archlinuxarm/PKGBUILDs/blob/master/alarm/uboot-odroid-c1/uboot-odroid-c1.install.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.