GithubHelp home page GithubHelp logo

balena-os / balena-engine Goto Github PK

View Code? Open in Web Editor NEW
675.0 675.0 69.0 203.13 MB

Moby-based Container Engine for Embedded, IoT, and Edge uses

Home Page: https://www.balena.io

License: Apache License 2.0

Makefile 0.14% Go 96.40% Shell 1.94% PowerShell 1.15% C 0.06% Assembly 0.01% Dockerfile 0.29% HCL 0.01%

balena-engine's Introduction

[Deprecated] balenaOS Website & Documentation

This repository's contents have been migrated to https://github.com/balena-io/resin-site/

Both the balenaOS website and the balenaOS Docs are now being built at https://github.com/balena-io/resin-site/

If you don't have access to the repository to make a pull request and suggest changes, please make a new issue on the balena-io/docs repository.

For any changes or suggestions about balenaOS on supported device types or meta-balena in general, please open an issue on the respective repository in https://github.com/balena-os/. There will be a repostiory associated with each device type with the format balena-<deviceType>. For example, raspberrypi devices have balena-raspberrypi or Intel devices have balena-intel.

For issues, with the base yocto layer for building balenaOS or generally about balenaOS, head on to meta-balena

Links:

balena-engine's People

Contributors

aaronlehmann avatar akihirosuda avatar albers avatar alexlarsson avatar allencloud avatar calavera avatar coolljt0725 avatar cpuguy83 avatar creack avatar dmcgowan avatar dnephin avatar estesp avatar jamtur01 avatar jessfraz avatar justincormack avatar kolyshkin avatar lk4d4 avatar lowenna avatar metalivedev avatar runcom avatar sdurrheimer avatar svendowideit avatar thajeztah avatar tianon avatar tiborvass avatar tonistiigi avatar unclejack avatar vbatts avatar vieux avatar yongtang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

balena-engine's Issues

balena depends on random to be initialised before starting

Until crng has been initialised and there is enough entropy in the system, balena does not start.

This is introduced by a patch in the kernel which was backported to stable branches as well.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=43838a23a05fbd13e47d750d3dfd77001536dd33

Reverting this patch does make balena start faster.
tl;dr Kernel used to report crng initialised when it had a small amount of entropy. Now it reports crng initialised correctly when there is good entropy.

Worst case I've seen until now is ~7 minutes

root@2410213:~# dmesg | grep -i random
...
[    1.182282] random: systemd: uninitialized urandom read (16 bytes read)
[  444.351446] random: crng init done
[  444.351453] random: 7 urandom warning(s) missed due to ratelimiting
root@2410213:~#

As a result, balena starts 7 minutes later.

Various packages have fixed this in various ways.
e.g. In util-linux, a flag was passed to getrandom to make the call nonblocking
util-linux/util-linux@a9cf659#diff-6341cb5466770a24a1f3bfdb80803412

Lots of Debian chatter about it. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897572

From a cursory look, it looks like packages which wanted random (but not necessarily entropy in the security sense e.g. uuid generation) basically called getrandom with a nonblock flag so whatever random numbers came was fine.

Security stuff like ssh key gen basically have to wait. Or install something like rng-tools to improve entropy at boot faster.

Description

Steps to reproduce the issue:

  1. Boot resinOS v2.19 on a nuc image in a VM
  2. Check if balena is starting immediately on boot
  3. Check if balena starts after you see the crng init message comes when you type random stuff on the keyboard

Describe the results you received:
Balena starts after crng init.

Describe the results you expected:
Balena should start at boot

Additional information you deem important (e.g. issue happens only occasionally):

Output of balena version:

root@resin:~# balena version
Client:
 Version:	unknown-version
 API version:	1.35
 Go version:	go1.9.7
 Git commit:	unknown-commit
 Built:	unknown-buildtime
 OS/Arch:	linux/amd64
 Experimental:	false
 Orchestrator:	swarm

Server:
 Engine:
  Version:	17.12.0-dev
  API version:	1.35 (minimum version 1.12)
  Go version:	go1.9.7
  Git commit:	3e2973d26934bd22c46f07764afb1ed8b11bf6a1
  Built:	Tue Oct  2 12:18:21 2018
  OS/Arch:	linux/amd64
  Experimental:	true
root@resin:~# 

Output of balena info:

root@resin:~# balena info
Containers: 4
 Running: 4
 Paused: 0
 Stopped: 0
Images: 4
Server Version: 17.12.0-dev
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 41
 Dirperm1 Supported: true
Logging Driver: journald
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan null
 Log: journald json-file
Swarm: 
 NodeID: 
 Is Manager: false
 Node Address: 
Runtimes: bare runc
Default Runtime: runc
Init Binary: balena-init
containerd version: 
runc version: 13e66eedaddfbfeda2a73d23701000e4e63b5471
init version: 949e6fa-dirty (expected: 949e6facb7738)
Kernel Version: 4.14.48-yocto-standard
Operating System: Resin OS 2.15.1+rev2
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 989.3MiB
Name: resin
ID: 4FGZ:T47Z:U7X6:45DJ:4J7P:YFN3:QQM4:WOZ3:TTBL:UMQM:QOCU:7M6V
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 128
 Goroutines: 101
 System Time: 2018-10-08T17:23:38.887619837Z
 EventsListeners: 1
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 192.168.1.166:5000
 127.0.0.0/8
Live Restore Enabled: false

root@resin:~# 

Additional environment details (AWS, VirtualBox, physical, etc.):

Jetson TX2

Description

'balenad' can not be started due to a number of kernel modules missing and there is no error message during installation.
There should be a check similar to : https://docs.docker.com/engine/installation/linux/linux-postinstall/#kernel-compatibility to verify kernel compatibility before installation.

Steps to reproduce the issue:

  1. On Jetson TX2 dev kit install balena
  2. (Run sudo balenad)

Describe the results you received:

  • On 1. - no error message
  • On 2.:
    An error message
WARN[0000] could not change group /var/run/balena.sock to balena: group balena not found 
INFO[0000] libcontainerd: new containerd process, pid: 4149 
WARN[0000] containerd: low RLIMIT_NOFILE changing to max  current=1024 max=1048576
WARN[0001] unable to modify root key limit, number of containers could be limited by this quota: open /proc/sys/kernel/keys/root_maxkeys: no such file or directory 
ERRO[0001] [graphdriver] prior storage driver devicemapper failed: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed 
Error starting daemon: error initializing graphdriver: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed

Describe the results you expected:

An error message during installation pointing out which kernel modules are missing.

Additional information you deem important (e.g. issue happens only occasionally):

Output of balena version:

Client:
 Version:      unknown-version
 API version:  1.31
 Go version:   go1.9
 Git commit:   unknown-commit
 Built:        unknown-buildtime
 OS/Arch:      linux/arm64
Cannot connect to the balena daemon at unix:///var/run/balena.sock. Is the balena daemon running?

Output of balena info:

Cannot connect to the balena daemon at unix:///var/run/balena.sock. Is the balena daemon running?

Additional environment details (AWS, VirtualBox, physical, etc.):

  • Hardware is a Jetson TX2 development kit
  • kernel: 4.4.38-tegra

Support applying local deltas

I have taken a look through issues and can't see anything similar - apologies if this is a duplicate.

Our organisation would like to move images around using files. I have tried to load (and import) a delta I've copied across to a server and this doesn't start the delta application mode and build an updated image the same way a balena pull does - it just imports the delta image in to balena images.

Is it possible to have this functionality?

root@ubuntu:~# balena version
Client:
Version: unknown-version
API version: 1.31
Go version: go1.9
Git commit: unknown-commit
Built: unknown-buildtime
OS/Arch: linux/amd64

Server:
Version: 17.06.0-dev
API version: 1.31 (minimum version 1.12)
Go version: go1.9
Git commit: c6df57f
Built: Fri Oct 13 09:05:43 2017
OS/Arch: linux/amd64
Experimental: false
root@ubuntu:~# balena info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 17.06.0-dev
Storage Driver: aufs
Root Dir: /var/lib/balena/aufs
Backing Filesystem: extfs
Dirs: 0
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host null
Log: journald json-file
Swarm:
NodeID:
Is Manager: false
Node Address:
Runtimes: bare runc
Default Runtime: runc
Init Binary: balena-init
containerd version: (expected: 3addd840653146c90a254301d6c3a663c7fd6429)
runc version: 13e66eedaddfbfeda2a73d23701000e4e63b5471
init version: N/A (expected: )
Security Options:
apparmor
Kernel Version: 4.15.0-36-generic
Operating System: Ubuntu 18.04 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.947GiB
Name: ubuntu
ID: DEHM:WNJC:VSCY:MKFH:UZ3W:H77S:T3CH:D6YO:Z4OB:W7LF:DP3B:E2IK
Docker Root Dir: /var/lib/balena
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
xxxxx
xxxxx
127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support

Leftover data in diff after power cut

Testing balena on resinOS (2.9.6)

Steps to reproduce the issue:

  1. start pulling an image, in this particular case e.g. DOCKER_HOST=unix:///var/run/balena-host.sock balena pull resin/resinos:2.9.6_rev1-raspberrypi3
  2. when the pull is going on for a bit, but not yet finished, cut the power to the device

Describe the results you received:

After reboot, the host's relevant balena folder will have a balena/aufs/diff/<sha> folder, that is the remnant of that pull, and not cleared up by balena. It is not shown in balena system df and balena system prune cannot clear it up (with any available flags).

For example one device, that was power-cut twice, and the leftover data's there but not showing up in the system info:

bash-4.3# du -h -d 1 balena/aufs/diff/
54M     balena/aufs/diff/44bff4c2568bb9983b4671b61a7b295408b8b0c7d61ecafc37f61dd8af6369f1
105M    balena/aufs/diff/8f123a4e18050fbe2f4eb4ef941ebd141a0db71316ab82229a7174ef7348f7d4
158M    balena/aufs/diff/
bash-4.3# DOCKER_HOST=unix:///var/run/balena-host.sock balena system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              0                   0                   0B                  0B
Containers          0                   0                   0B                  0B
Local Volumes       0                   0                   0B                  0B
bash-4.3# DOCKER_HOST=unix:///var/run/balena-host.sock balena system prune --all --force --volumes
Total reclaimed space: 0B

Describe the results you expected:

That folder being removed after reboot.

Additional information you deem important (e.g. issue happens only occasionally):

No such folder is left behind if the pull is stopped with CTRL-C, if stopped by kill, the device rebooted with the reboot command, if there's a network timeout during the pull, or if the pull runs out of space. Only hard power cut seems to leave such folder behind.

Once managed to get to a state on the device that the balena/aufs/diff/<sha> folder was renamed by balena to balena/aufs/diff/<sha>-removing, but it was never actually removed. Not sure what triggered that rename, and cannot trigger it on will.

Output of balena version:

bash-4.3# DOCKER_HOST=unix:///var/run/balena-host.sock balena version
Client:
 Version:      unknown-version
 API version:  1.31
 Go version:   go1.8
 Git commit:   unknown-commit
 Built:        unknown-buildtime
 OS/Arch:      linux/arm

Server:
 Version:      17.06.0-dev
 API version:  1.31 (minimum version 1.12)
 Go version:   go1.8
 Git commit:   748e0c102458bbab56e2b928fdffcbf41c8a870c
 Built:        Tue Jan  9 12:59:31 2018
 OS/Arch:      linux/arm
 Experimental: false

Output of balena info:

bash-4.3# DOCKER_HOST=unix:///var/run/balena-host.sock balena info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 17.06.0-dev
Storage Driver: aufs
 Root Dir: /mnt/sysroot/inactive/balena/aufs
 Backing Filesystem: extfs
 Dirs: 2
 Dirperm1 Supported: true
Logging Driver: journald
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host null
 Log: journald json-file
Swarm:
 NodeID:
 Is Manager: false
 Node Address:
Runtimes: bare runc
Default Runtime: runc
Init Binary: balena-init
containerd version:  (expected: 3addd840653146c90a254301d6c3a663c7fd6429)
runc version: 13e66eedaddfbfeda2a73d23701000e4e63b5471
init version: 949e6fa-dirty (expected: 949e6facb7738)
Kernel Version: 4.9.59
Operating System: Resin OS 2.9.6+rev1
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 976.8MiB
Name: dedfccb
ID: ZZKL:ZOFL:DRJN:6462:MDOM:677E:N2QD:DTQM:SHA7:EVLK:BPPA:OCM4
Docker Root Dir: /mnt/sysroot/inactive/balena
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 memory limit support
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No oom kill disable support

Additional environment details (AWS, VirtualBox, physical, etc.):

resinOS 2.9.6+rev1 (Raspberry Pi 3)

Front logo Front conversations

Could include homepage URL in description

At the top of https://github.com/resin-os/balena where it says Moby-based Container Engine for Embedded, IoT, and Edge uses, it probably wouldn't hurt to also include the https://www.balena.io/ URL? :)

Also @craig-mulligan is it "correct" that http://balena.io redirects to https://www.balena.io/ whereas http://www.etcher.io redirects to https://etcher.io ?
Edit: And https://resin.io links to https://balena.io/ which then redirects to https://www.balena.io/
Of course this doesn't really matter, as the redirects all work fine, I was merely asking out of curiosity.

Balena engine with Kubernetes

I am trying to run kubernetes on my cluster and want to have Balena as my container runtime. But kubelet is not starting up with Balena engine. Does Balena have cri shim layer to talk to kubelet ? Is it compatible with kubernetes?

Error running image: exec: "docker-proxy": executable file not found in $PATH

I am getting error Error running image: exec: "docker-proxy": executable file not found in $PATH when trying to start the container.

I don't have docker installed.

balena version output:

Client:
Version: unknown-version
API version: 1.31
Go version: go1.9
Git commit: unknown-commit
Built: unknown-buildtime
OS/Arch: linux/arm

Server:
Version: 17.06.0-dev
API version: 1.31 (minimum version 1.12)
Go version: go1.9
Git commit: c6df57f-unsupported
Built: Fri Oct 13 09:31:13 2017
OS/Arch: linux/arm
Experimental: false

I get warning when balenad start:
WARN[0003] failed to retrieve balena-init version: exec: "balena-init": executable file not found in $PATH

What is the proper way to start balenad so it uses balena-proxy instead of docker-proxy?

Cannot connect to the balena daemon at unix:///var/run/balena.sock. Is the balena daemon running?

Description

After installing balena its daemon is not running. Calling balena ps or similar as root yields:

$ balena ps
Cannot connect to the balena daemon at unix:///var/run/balena.sock. Is the balena daemon running?

Steps to reproduce the issue:

  1. Install balena
  2. balena ps

Additional information you deem important (e.g. issue happens only occasionally):

Output of balena version:

$ balena version
Client:
 Version:      unknown-version
 API version:  1.31
 Go version:   go1.9
 Git commit:   unknown-commit
 Built:        unknown-buildtime
 OS/Arch:      linux/arm64
Cannot connect to the balena daemon at unix:///var/run/balena.sock. Is the balena daemon running?

Output of balena info:

$ balena info
Cannot connect to the balena daemon at unix:///var/run/balena.sock. Is the balena daemon running?

Additional environment details (AWS, VirtualBox, physical, etc.):
Allwinner A64 SoC

$ uname -a
Linux umbrela-bridge 4.13.0-rc7+ #44 SMP Wed Aug 30 23:00:03 UTC 2017 aarch64 aarch64 aarch64 GNU/Linux

no systemd

I am wanting to use balena for embedded devices but my systems will not have systemd - right now its looking for libsystemd - any plans for just openrc or sysv init?

balena crash

Description

During local mode pushed 13 containers. Sudden restart of balena daemon during normal operation

Steps to reproduce the issue:
1.
2.
3.

Describe the results you received:

Describe the results you expected:

Additional information you deem important (e.g. issue happens only occasionally):
balena sometimes is very slow to start. Balena startup time varies from reboot to reboot

journalctl logs

ar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 1622 (balena-proxy) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 1662 (balena-proxy) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 1679 (balena-containe) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 1690 (balena-containe) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 1782 (balena-containe) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 1790 (balena-containe) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 9376 (balena-containe) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 14039 (balena-containe) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 17448 (balena-containe) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 17816 (balena-containe) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 18681 (balena-healthch) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 18682 (balena) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin systemd[1]: [[0;1;39mbalena.service: Killing process 18738 (balena-containe) with signal SIGABRT.[[0m
Mar 08 10:45:02 resin healthdog[787]: SIGABRT: abort
Mar 08 10:45:02 resin healthdog[787]: PC=0x8e608 m=0 sigcode=0
Mar 08 10:45:02 resin healthdog[787]: goroutine 4275 [syscall]:
Mar 08 10:45:02 resin healthdog[787]: syscall.Syscall(0x3, 0x4e, 0x133ca000, 0x8000, 0x0, 0x1, 0x1)
Mar 08 10:45:02 resin healthdog[787]:         /usr/lib/arm-poky-linux-gnueabi/go/src/syscall/asm_linux_arm.s:17 +0x8 fp=0x11fbdde4 sp=0x11fbdde0
Mar 08 10:45:02 resin healthdog[787]: syscall.read(0x4e, 0x133ca000, 0x8000, 0x8000, 0x7ba34, 0x11742870, 0x4)
Mar 08 10:45:02 resin healthdog[787]:         /usr/lib/arm-poky-linux-gnueabi/go/src/syscall/zsyscall_linux_arm.go:783 +0x3c fp=0x11fbde0c sp=0x11fbdde4
Mar 08 10:45:02 resin healthdog[787]: syscall.Read(0x4e, 0x133ca000, 0x8000, 0x8000, 0x46e220, 0x0, 0x5e6550)
Mar 08 10:45:02 resin healthdog[787]:         /usr/lib/arm-poky-linux-gnueabi/go/src/syscall/syscall_unix.go:162 +0x34 fp=0x11fbde2c sp=0x11fbde0c
Mar 08 10:45:02 resin healthdog[787]: os.(*File).read(0x1247fee8, 0x133ca000, 0x8000, 0x8000, 0x12831f88, 0x3e49c8, 0xb36aa0)
Mar 08 10:45:02 resin healthdog[787]:         /usr/lib/arm-poky-linux-gnueabi/go/src/os/file_unix.go:165 +0x3c fp=0x11fbde4c sp=0x11fbde2c
Mar 08 10:45:02 resin healthdog[787]: os.(*File).Read(0x1247fee8, 0x133ca000, 0x8000, 0x8000, 0x0, 0x126a58cc, 0x0)
Mar 08 10:45:02 resin healthdog[787]:         /usr/lib/arm-poky-linux-gnueabi/go/src/os/file.go:101 +0x60 fp=0x11fbde7c sp=0x11fbde4c

Output of balena version:
Client:
Version: unknown-version
API version: 1.31
Go version: go1.8
Git commit: unknown-commit
Built: unknown-buildtime
OS/Arch: linux/arm

Server:
Version: 17.06.0-dev
API version: 1.31 (minimum version 1.12)
Go version: go1.8
Git commit: 748e0c1
Built: Wed Jan 10 14:54:41 2018
OS/Arch: linux/arm
Experimental: true

Output of balena info:
Containers: 13
Running: 13
Paused: 0
Stopped: 0
Images: 67
Server Version: 17.06.0-dev
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 191
Dirperm1 Supported: true
Logging Driver: journald
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan null
Log: journald json-file
Swarm:
NodeID:
Is Manager: false
Node Address:
Runtimes: runc bare
Default Runtime: runc
Init Binary: balena-init
containerd version: (expected: 3addd840653146c90a254301d6c3a663c7fd6429)
runc version: 13e66eedaddfbfeda2a73d23701000e4e63b5471
init version: 949e6fa-dirty (expected: 949e6facb7738)
Kernel Version: 4.9.59
Operating System: Resin OS 2.9.6+rev1
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 976.8MiB
Name: resin
ID: Y6ZS:4FRL:7TCK:4XR4:T3OV:J6PX:YBIK:GFHN:6XP5:3EEA:EUH2:O7KK
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No oom kill disable support

Additional environment details (AWS, VirtualBox, physical, etc.):

Front logo Front conversations

Failed to start service 'XXX'.. due to '(HTTP code 500) server error - driver failed programming external connectivity on endpoint ... Bind for 0.0.0.0:9000 failed: port is already allocated

Description

Steps to reproduce the issue:

  1. Just deploy to an application in resin.io

Describe the results you received:
Some of the devices randomly start failing to start because of the port being used, looking into the host, seems that balena-proxy it's the one keeping the port bind in the host.

Restarting the device fix the issue.

Describe the results you expected:
Services start without conflicts with port being bind already.

Additional information you deem important (e.g. issue happens only occasionally):

Output of balena version:

# balena version
Client:
 Version:      unknown-version
 API version:  1.31
 Go version:   go1.9
 Git commit:   unknown-commit
 Built:        unknown-buildtime
 OS/Arch:      linux/arm

Server:
 Version:      17.06.0-dev
 API version:  1.31 (minimum version 1.12)
 Go version:   go1.9
 Git commit:   73136d1985f28a34705f537e90636cf208734048
 Built:        Tue Mar 13 17:13:43 2018
 OS/Arch:      linux/arm
 Experimental: true

Output of balena info:

# balena info
Containers: 9
 Running: 9
 Paused: 0
 Stopped: 0
Images: 9
Server Version: 17.06.0-dev
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 116
 Dirperm1 Supported: true
Logging Driver: journald
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan null
 Log: journald json-file
Swarm:
 NodeID:
 Is Manager: false
 Node Address:
Runtimes: bare runc
Default Runtime: runc
Init Binary: balena-init
containerd version:  (expected: 3addd840653146c90a254301d6c3a663c7fd6429)
runc version: 13e66eedaddfbfeda2a73d23701000e4e63b5471
init version: 949e6fa-dirty (expected: 949e6facb7738)
Kernel Version: 4.9.59
Operating System: Resin OS 2.12.7+rev1
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 976.8MiB
Name: xxxx
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.):

Running on:

  • Raspberry Pi 3(kunbus)
  • Supervisor: 7.4.3
  • Resin OS 2.12.7+rev1

Some info:

# netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.2:53            0.0.0.0:*               LISTEN
tcp        0      0 10.114.102.1:53         0.0.0.0:*               LISTEN
tcp        0      0 :::48484                :::*                    LISTEN
tcp        0      0 :::9000                 :::*                    LISTEN
tcp        0      0 :::22222                :::*                    LISTEN

# ps | grep proxy
  936 root      860m S    /usr/bin/balena-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9000 -container-ip 172.18.0.7 -container-port 9000

Error logs:

16.08.18 11:22:26 (+0200) Installing service 'xxx sha256:db3160344b12977a2cb68f1530c59c5623aebb3f932def16b8bf45847ff9dfc8'
16.08.18 11:22:26 (+0200) Installed service 'xxx sha256:db3160344b12977a2cb68f1530c59c5623aebb3f932def16b8bf45847ff9dfc8'
16.08.18 11:22:26 (+0200) Starting service 'xxx sha256:db3160344b12977a2cb68f1530c59c5623aebb3f932def16b8bf45847ff9dfc8'
16.08.18 11:22:27 (+0200) Failed to start service 'xxx sha256:db3160344b12977a2cb68f1530c59c5623aebb3f932def16b8bf45847ff9dfc8' due to '(HTTP code 500) server error -
driver failed programming external connectivity on endpoint xxx_428595_570779 (a16d045fd10f8907d9564b6f6826b88753c0cf20e639d333f3de8e82d89ca82b): Bind for 0.0.0.0:9000
 failed: port is already allocated '

Front logo Front conversations

Expand the install script

It would be awesome if the install script would also contain a systemd service file, create a group for balena, give advice on adding the current user to said group and then start balenad from the service, similiar to the Docker install script

Error running image: exec: "docker-proxy": executable file not found in $PATH.

Description

Running a known working image with docker fails with balena.

Steps to reproduce the issue:

  1. Run image:
balena run \
        --name openhab \
        -v /etc/localtime:/etc/localtime:ro \
        -v /etc/timezone:/etc/timezone:ro \
        -v /opt/openhab/conf:/openhab/conf \
        -v /opt/openhab/userdata:/openhab/userdata \
        -v /opt/openhab/addons:/openhab/addons \
        -p 8080:8080 \
        -p 8443:8443 \
        -p 5555:5555 \
        -d \
        --restart=always \
        umbrela/openhab:2.1.0-release-arm64

Describe the results you received:

# balena run \
>         --name openhab \
>         -v /etc/localtime:/etc/localtime:ro \
>         -v /etc/timezone:/etc/timezone:ro \
>         -v /opt/openhab/conf:/openhab/conf \
>         -v /opt/openhab/userdata:/openhab/userdata \
>         -v /opt/openhab/addons:/openhab/addons \
>         -p 8080:8080 \
>         -p 8443:8443 \
>         -p 5555:5555 \
>         -d \
>         --restart=always \
>         umbrela/openhab:2.1.0-release-arm64
Unable to find image 'umbrela/openhab:2.1.0-release-arm64' locally
2.1.0-release-arm64: Pulling from umbrela/openhab
f8be28d667a4: Pull complete 
623c81b498eb: Pull complete 
df09d6f1c697: Pull complete 
512697993b5a: Pull complete 
79a885dd5717: Pull complete 
a336e55520f0: Pull complete 
092ba3e899dd: Pull complete 
Total:   128.5MB
Digest: sha256:e3e489cf23b75818cb0c11a20cc6cabf1f6019cddc059894ca0f8670c0a552ed
Status: Downloaded newer image for umbrela/openhab:2.1.0-release-arm64
25d52826f8bf0be89c3e5f05bf8676e75140d90680855c381b172981fec5978a
balena: Error response from daemon: driver failed programming external connectivity on endpoint openhab (9754318a8772bf58cacda5eb0c3abf5f3f1ea04d93fe47b554d335ad8c2aa0f7): exec: "docker-proxy": executable file not found in $PATH.

There are errors in balenad output:

$ balenad
WARN[0000] could not change group /var/run/balena.sock to balena: group balena not found 
INFO[0000] libcontainerd: new containerd process, pid: 1313 
WARN[0000] containerd: low RLIMIT_NOFILE changing to max  current=1024 max=65536
WARN[0001] failed to rename /var/lib/balena/tmp for background deletion: rename /var/lib/balena/tmp /var/lib/balena/tmp-old: no such file or directory. Deleting synchronously 
INFO[0001] Graph migration to content-addressability took 0.00 seconds 
WARN[0001] Your kernel does not support swap memory limit 
WARN[0001] Your kernel does not support cgroup rt period 
WARN[0001] Your kernel does not support cgroup rt runtime 
INFO[0001] Loading containers: start.                   
INFO[0001] Default bridge (balena0) is assigned with an IP address 172.18.0.0/16. Daemon option --bip can be used to set a preferred IP address 
INFO[0001] Loading containers: done.                    
WARN[0001] Couldn't run auplink before unmount /var/lib/balena/tmp/docker-aufs-union523616249: exec: "auplink": executable file not found in $PATH 
WARN[0001] failed to retrieve balena-init version: exec: "balena-init": executable file not found in $PATH 
INFO[0001] Docker daemon                                 commit=c6df57f-unsupported graphdriver(s)=aufs version=17.06.0-dev
INFO[0001] Daemon has completed initialization          
INFO[0002] API listen on /var/run/balena.sock           
WARN[0373] failed to retrieve balena-init version: exec: "balena-init": executable file not found in $PATH 
WARN[0680] failed to retrieve balena-init version: exec: "balena-init": executable file not found in $PATH 
WARN[0752] Couldn't run auplink before unmount /var/lib/balena/aufs/mnt/2839b8b151cbcfe9f68f774706e55c498a8ac36ec297c3eb6a2bf5ad9964834d-init: exec: "auplink": executable file not found in $PATH 
WARN[0752] Couldn't run auplink before unmount /var/lib/balena/aufs/mnt/2839b8b151cbcfe9f68f774706e55c498a8ac36ec297c3eb6a2bf5ad9964834d: exec: "auplink": executable file not found in $PATH 
WARN[0752] Failed to allocate and map port 8443-8443: exec: "docker-proxy": executable file not found in $PATH 
WARN[0752] Couldn't run auplink before unmount /var/lib/balena/aufs/mnt/2839b8b151cbcfe9f68f774706e55c498a8ac36ec297c3eb6a2bf5ad9964834d: exec: "auplink": executable file not found in $PATH 

Describe the results you expected:

I expected the image to run successfully, and to see it running in balena ps.

Additional information you deem important (e.g. issue happens only occasionally):

Output of balena version:

Client:
 Version:      unknown-version
 API version:  1.31
 Go version:   go1.9
 Git commit:   unknown-commit
 Built:        unknown-buildtime
 OS/Arch:      linux/arm64

Server:
 Version:      17.06.0-dev
 API version:  1.31 (minimum version 1.12)
 Go version:   go1.9
 Git commit:   c6df57f-unsupported
 Built:        Fri Oct 13 09:41:14 2017
 OS/Arch:      linux/arm64
 Experimental: false

Output of balena info:

Containers: 1
 Running: 0
 Paused: 0
 Stopped: 1
Images: 2
Server Version: 17.06.0-dev
Storage Driver: aufs
 Root Dir: /var/lib/balena/aufs
 Backing Filesystem: extfs
 Dirs: 13
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host null
 Log: journald json-file
Swarm: 
 NodeID: 
 Is Manager: false
 Node Address: 
Runtimes: bare runc
Default Runtime: runc
Init Binary: balena-init
containerd version:  (expected: 3addd840653146c90a254301d6c3a663c7fd6429)
runc version: 13e66eedaddfbfeda2a73d23701000e4e63b5471
init version: N/A (expected: )
Security Options:
 apparmor
Kernel Version: 4.13.0-rc7+
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: aarch64
CPUs: 4
Total Memory: 1.952GiB
Name: bridge-os
ID: 7452:HVRT:ODSL:ONZQ:YV6M:JIYQ:5FR3:MYYH:KE3K:3LID:CBOD:BVDL
Docker Root Dir: /var/lib/balena
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 swap limit support

Additional environment details (AWS, VirtualBox, physical, etc.):

Allwinner A64

$uname -a
Linux umbrela-bridge 4.13.0-rc7+ #44 SMP Wed Aug 30 23:00:03 UTC 2017 aarch64 aarch64 aarch64 GNU/Linux

Support flexible/wildcard device additions to non-privileged containers

In some cases it would be good to be able to define a range of devices or type of device to be added to the container /dev. One example of this would be in the case of a usb serial device where its not always known at deploy type what the usb device would enumerate too. Allowing something like specifying --device ttyUSB*:ttyUSB0 or something similar to that would be very useful.

Couldn't run auplink before unmount

Description

balena depends on some packages being installed, including aufs-tools, that are not described in the readme nor are they auto-installed with the installer.

Steps to reproduce the issue:

  1. boot fresh system
  2. install balena using the curl | sh approach
  3. notice errors in logfile

Describe the results you expected:

No errors in log file

Describe the results you received:

Warning error

WARN[0058] Couldn't run auplink before unmount /var/lib/balena/aufs/mnt/aeb4358fd3b1af91e63f50da1b2b5ed4aa306ed37b75a94398af665ab06acf5d: exec: "auplink": executable file not found in $PATH 

Additional information you deem important (e.g. issue happens only occasionally):

Fixed after I did apt-get install aufs-tools

Output of balena version:

root@ed-balena-test:~# balena version
Client:
 Version:      unknown-version
 API version:  1.31
 Go version:   go1.9
 Git commit:   unknown-commit
 Built:        unknown-buildtime
 OS/Arch:      linux/arm64

Server:
 Version:      17.06.0-dev
 API version:  1.31 (minimum version 1.12)
 Go version:   go1.9
 Git commit:   c6df57f-unsupported
 Built:        Fri Oct 13 09:41:14 2017
 OS/Arch:      linux/arm64
 Experimental: false

Output of balena info:

root@ed-balena-test:~# balena info
WARN[0343] failed to retrieve balena-init version: exec: "balena-init": executable file not found in $PATH 
Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 1
Server Version: 17.06.0-dev
Storage Driver: aufs
 Root Dir: /var/lib/balena/aufs
 Backing Filesystem: extfs
 Dirs: 5
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host null
 Log: journald json-file
Swarm: 
 NodeID: 
 Is Manager: false
 Node Address: 
Runtimes: runc bare
Default Runtime: runc
Init Binary: balena-init
containerd version:  (expected: 3addd840653146c90a254301d6c3a663c7fd6429)
runc version: 13e66eedaddfbfeda2a73d23701000e4e63b5471
init version: N/A (expected: )
Security Options:
 apparmor
Kernel Version: 4.10.0-26-generic
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: aarch64
CPUs: 96
Total Memory: 125.9GiB
Name: ed-balena-test
ID: IYYE:FHOG:UWKB:UQXO:VQBJ:CTVJ:DGR4:ORPR:JIP7:PDOI:3QH6:GR25
Docker Root Dir: /var/lib/balena
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 swap limit support```

**Additional environment details **

Packet Type 2A arm64 system, freshly installed with Ubuntu 16.04

Exposing /dev properly to the container by the Engine

Description

Udev in containers is major pain. Should have a balenaEngine feature, that exposes the devices dynamically in a container, with just udev running in the host.
The discussion went something like:

When a container is privileged, expose a copy of /dev to the container in a way that they get dynamic devices (and device names), and exposes it to the container in a way that new devices will show up, but the containers cannot create/destroy nodes (just read/write/open the nodes). This would remove most of the needs of users running udev inside the container.

From 2018/12/18 architecture call

Front logo Front conversations

Build fails on go1.11

Description

Building balena on ArchLinux, which ships go 1.11 now by default, results in relocation target runtime.support_avx not defined and relocation target runtime.support_avx2 not defined errors from go crypto.

Steps to reproduce the issue:

  1. On ArchLInux (or any other system) install go 1.11
  2. build balena according to to instructions

Describe the results you received:

...
---> Making bundle: binary-balena (in bundles/binary-balena)
Building: bundles/binary-balena/balena-v17.12.0-9-gebfc24009
# github.com/docker/docker/cmd/balena
github.com/docker/docker/vendor/golang.org/x/crypto/blake2b.supportsAVX2: relocation target runtime.support_avx2 not defined
github.com/docker/docker/vendor/golang.org/x/crypto/blake2b.supportsAVX: relocation target runtime.support_avx not defined

Describe the results you expected:

Balena building correctly.

Additional information you deem important (e.g. issue happens only occasionally):

$ go version  
go version go1.11 linux/amd64

Version info

Building v17.12.0-9-gebfc24009, that is the current tip of the 17.12-resin branch.

Additional environment details (AWS, VirtualBox, physical, etc.):

ArchLinux up to date version, building this package https://aur.archlinux.org/packages/balena/

Front logo Front conversations

Adding balena into buildroot

Description

Hello

I am trying to add balena into buildroot. I consider balena_git.bb file from meta-resin as cross-compile procedure. I sent a patch in order to add balena I took some feed back from buildroot. I have some question and I need your help in some point.

Questions

  1. Why do we need some docker parameters as DOCKER_BUILDTAGS, DOCKER_GITCOMMIT, or directory as .gopath/src/github.com/docker/docker?
  2. build creates .gopath/src/github.com/docker/docker/cmd/mobynit/mobynit binary but we copy bundles/17.06.0-dev/dynbinary-balena/balena. what is the differences?

You can flow the e-mail from https://patchwork.ozlabs.org/patch/925039
if I am wrong at some point please warn

Integrate balenaCI

We want to build/test/release balenaEngine using our CI, to do this a few steps need to be taken to make this repo/ the ci compatible.

  • master is the release branch
  • PRs go into release branch
  • build for multiple platforms (x86_64, i386, arm{5,6,7}, aarch64)
  • run privileged containers for tests (specifically integration tests)

I pushed some initial work to the ci branch, like a patch that allows running the unit tests unprivileged.

cc @nazrhom @petrosagg

build.sh uses different version than the make script it calls

When running build.sh, the version is inferred from git commit. The script it calls, though, hack/make.sh, uses the VERSION file in the root to infer the version to build. These two can be out of step with each other (e.g. building from the tag 17.06-rev1 would try to build as 17.06.0-dev.

Some sort of reconciliation of these two versions might be desirable? Just updating VERSION is not enough, because then make.sh complains of uncommitted changes.

Install script fails without sudo, yet prints "Installation Successful"

Description

Attempted to install balena via the installation script curl -sfL https://balena.io/install.sh | sh as root but it failed because the environment does not have sudo installed, even though the script appears to be successful.

root@75437baec2b3# curl -sfL https://balena.io/install.sh | sh
sh: 40: sudo: not found


   Installation successful!
 _           _
| |__   __ _| | ___ _ __   __ _
| '_ \ / _` | |/ _ \ '_ \ / _` |
| |_) | (_| | |  __/ | | | (_| |
|_.__/ \__,_|_|\___|_| |_|\__,_|

the container engine for the IoT

Steps to reproduce the issue:

  1. Login as root
  2. curl -sfL https://balena.io/install.sh | sh

Additional environment details (AWS, VirtualBox, physical, etc.):
Allwinner A64 SoC

$ uname -a
Linux 75437baec2b3 4.13.0-rc7+ #44 SMP Wed Aug 30 23:00:03 UTC 2017 aarch64 aarch64 aarch64 GNU/Linux

Cannot connect to the balena daemon at unix:///var/run/balena.sock. Is the balena daemon running?

Hi,
Creating the sub issue of https://github.com/resin-os/balena/issues/55

Tried the below commands and ended up in errors
sudo systemctl enable balena
Failed to execute operation: No such file or directory

sudo systemctl status balena
โ— balena.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)

sudo systemctl start balena
Failed to start balena.service: Unit balena.service not found.

Kindly suggest any ways that balena can run continuously as a background service on rebooting the machine.

Thanks

Update some relevant `contrib` sections to work with balena

For example the init examples (including systemd services), udev files, things that balena would need to be packages and/or deployed easily. One can modify those files themselves, but would be good to have official versions (that were tested).

Graphdriver can't detect overlay driver

Description

Kernel has Overlay2 support built-in, but the graphdriver module in import/daemon/graphdriver/driver.go can't detect it.

Steps to reproduce the issue:

  1. build and run the odroid-c2 install here: https://github.com/rbray89/resin-odroid
  2. mobynit will die and cause a kernel panic.
DEBU[0000] [graphdriver] trying provided driver: overlay2
1970/01/01 00:00:01 error loading layer store:error initializing graphdriver: driver not supported
[    1.753174] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[    1.753174]
[    1.756647] CPU: 1 PID: 85 Comm: init Not tainted 4.14.28-odroid #4
[    1.762853] Hardware name: Hardkernel ODROID-C2 (DT)
[    1.767769] Call trace:
[    1.770193] [<ffff000008089d50>] dump_backtrace+0x0/0x428
[    1.775534] [<ffff00000808a18c>] show_stack+0x14/0x20
[    1.780537] [<ffff000008756708>] dump_stack+0x98/0xb8
[    1.785539] [<ffff0000080ae2d4>] panic+0x130/0x29c
[    1.790283] [<ffff0000080b2480>] complete_and_exit+0x0/0x20
[    1.795802] [<ffff0000080b24e4>] do_group_exit+0x34/0x98
[    1.801064] [<ffff0000080bd630>] get_signal+0x1d8/0x478
[    1.806238] [<ffff0000080887a8>] do_signal+0x88/0xbe8
[    1.810999] hub 1-1:1.0: USB hub found
[    1.811278] hub 1-1:1.0: 4 ports detected
[    1.818917] [<ffff0000080899b8>] do_notify_resume+0xd0/0x110
[    1.824522] Exception stack(0xffff000008ea3ec0 to 0xffff000008ea4000)
[    1.830905] 3ec0: 000000442005a110 0000000000000000 0000000000000000 0000000000000000
[    1.838667] 3ee0: 0000000000000000 0000000000000000 0000000000000001 0000000000000000
[    1.846430] 3f00: 0000000000000062 0000ffffb80008c0 000000000063bbc8 00000000003d0f00
[    1.854193] 3f20: 0000ffffbcf58090 00000000008f9fd8 0000000000000027 0000000000000000
[    1.861955] 3f40: 0000ffffbdf57458 0000000000000000 00000000008f9000 0000000000429340
[    1.869718] 3f60: 000000000044b3b0 0000ffffbdf5744e 0000ffffbdf5744f 00000000008f8000
[    1.877480] 3f80: 000000000093f000 000000000063a320 00000000007705d0 ffffffffffffffa0
[    1.885243] 3fa0: 000000442005c1a0 0000ffffbcf57800 0000000000422ebc 0000ffffbcf57620
[    1.893005] 3fc0: 000000000044c27c 00000000a0000000 000000442005a110 00000000ffffffff
[    1.900767] 3fe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[    1.908531] [<ffff000008083744>] work_pending+0x8/0x10
[    1.913621] SMP: stopping secondary CPUs
[    1.917501] Kernel Offset: disabled
[    1.920950] CPU features: 0x0802004
[    1.924399] Memory Limit: none
[    1.927421] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[    1.927421]

I would expect that the graphdriver module would be able to detect the Overlay2 driver.
Note that this happens on boot every time, so I can't output info, but I can provide the version info

Version info:

17.06.0-dev+git73136d1985f28a34705f537e90636cf208734048-r0

This is running on an odroid-c2 (aarch64) using the repo here: https://github.com/rbray89/resin-odroid

Balena requires device-mapper 1.02.1 to be installed`

Before running balena, one must install device-mapper 1.02.1. This can be done in debian/ubuntu with apt-get install dmsetup

Steps to reproduce the issue:

  1. Install balena
  2. Run balena version

Describe the results you received:

$ balena version
balena: error while loading shared libraries: libdevmapper.so.1.02.1: cannot open shared object file: No such file or directory

Describe the results you expected:
The version of balena.

Additional information you deem important (e.g. issue happens only occasionally):

N/A

Output of docker version:

N/A

Output of docker info:

N/A

Additional environment details (AWS, VirtualBox, physical, etc.):
debian sid in a Dockerfile

Installation not working. Update to #55

Installation process I went through on ubuntu 16.04 arch: arm64

Based on: #55 (comment)

1 run install script
curl -sfL https://balena.io/engine/install.sh | sh

2 copy balena.service balena.socket from : https://github.com/balena-os/balena-engine/tree/17.06-resin/contrib/init/systemd to directory: /etc/systemd/system

3 create group balena-engine
sudo groupadd balena-engine

4 update /etc/systemd/system/balena.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service
Wants=network-online.target
Requires=balena-engine.socket

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/local/bin/balena-engine-daemon
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
TasksMax=infinity
#TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

changes:
ExecStart - 1) change executable path since install.sh puts it in different path 2) remove -H flag since it causes an error
TasksMax - Uncommented
TimeoutStartSec - Commented, it causes an error

Please update install.sh and or service configuration

Delta application edge case

When a delta is applied with --delta-data-root set and the source image exists in the delta docker directory and the target image shares a layer it doesn't apply correctly. Docker attempts to untar the empty tar instead of transferring the layer from the delta-data-root to data-root

Link to star on github from balena.io landing page is incorrect

The button/link to star on GitHub on the balena.io landing page does not work as expected.

It is incorrectly linked to https://buttons.github.io/buttons.html#, and nothing happens when the button is clicked.

screen shot 2017-12-22 at 7 03 03 am

It should link directly to the balena repo on GitHub and open the repo page in a new tab upon clicking the button. Ideally, it should also show the number of existing stars next to the button, similar to the behavior on etcher.io

screen shot 2017-12-22 at 7 05 23 am

Build fails at due to `download-frozen-image-v2.sh` script.

Description
building binaries using default makefile, fails at script download-frozen-image-v2.sh with error

parse error: Invalid numeric literal at line 1, column 3

Steps to reproduce the issue:

  1. make or make balena

Describe the results you received:

Step 32/48 : RUN git config --global user.email '[email protected]'
 ---> Using cache
 ---> 43be2ee65d96
Step 33/48 : RUN groupadd -r balena
 ---> Using cache
 ---> add4330ffb72
Step 34/48 : RUN useradd --create-home --gid balena unprivilegeduser
 ---> Using cache
 ---> 952ca48ff416
Step 35/48 : VOLUME /var/lib/balena
 ---> Using cache
 ---> f74eaf3b9564
Step 36/48 : WORKDIR /go/src/github.com/docker/docker
 ---> Using cache
 ---> 94500bec68be
Step 37/48 : ENV DOCKER_BUILDTAGS apparmor seccomp selinux
 ---> Using cache
 ---> 83dce0ce01f5
Step 38/48 : RUN ln -sfv $PWD/.bashrc ~/.bashrc
 ---> Using cache
 ---> 98f65a499f2e
Step 39/48 : RUN echo "source $PWD/hack/make/.integration-test-helpers" >> /etc/bash.bashrc
 ---> Using cache
 ---> bc7696f4edd5
Step 40/48 : COPY contrib/download-frozen-image-v2.sh /go/src/github.com/docker/docker/contrib/
 ---> Using cache
 ---> 653deeac9bff
Step 41/48 : RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images    buildpack-deps:jessie@sha256:85b379ec16065e4fe4127eb1c5fb1bcc03c559bd36dbb2e22ff496de55925fa6  busybox:latest@sha256:32f093055929dbc23dec4d03e09dfe971f5973a9ca5cf059cbfb644c206aa83f         debian:jessie@sha256:72f784399fd2719b4cb4e16ef8e369a39dc67f53d978cd3e2e7bf4e502c7b793  hello-world:latest@sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7
 ---> Running in 5aec95da6a51
Downloading 'library/buildpack-deps:jessie@sha256:85b379ec16065e4fe4127eb1c5fb1bcc03c559bd36dbb2e22ff496de55925fa6' (4 layers)...
######################################################################## 100.0%
######################################################################## 100.0%
######################################################################## 100.0%
######################################################################## 100.0%
parse error: Invalid numeric literal at line 1, column 3
The command '/bin/sh -c ./contrib/download-frozen-image-v2.sh /docker-frozen-images     buildpack-deps:jessie@sha256:85b379ec16065e4fe4127eb1c5fb1bcc03c559bd36dbb2e22ff496de55925fa6  busybox:latest@sha256:32f093055929dbc23dec4d03e09dfe971f5973a9ca5cf059cbfb644c206aa83f         debian:jessie@sha256:72f784399fd2719b4cb4e16ef8e369a39dc67f53d978cd3e2e7bf4e502c7b793  hello-world:latest@sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7' returned a non-zero code: 4
Makefile:113: recipe for target 'build' failed
make: *** [build] Error 4

Describe the results you expected:
Build should be successful.

Additional environment details (golang and docker version.):

~/go/src/github.com/resin-os/balena on ๎‚  17.06-resin! โŒš 10:27:39
$ go version
go version go1.10 linux/amd64

~/go/src/github.com/resin-os/balena on ๎‚  17.06-resin! โŒš 10:29:06
$ docker version
Client:
 Version:           18.06.0-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        0ffa825
 Built:             Wed Jul 18 19:11:02 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.0-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       0ffa825
  Built:            Wed Jul 18 19:09:05 2018
  OS/Arch:          linux/amd64
  Experimental:     true

Delta progress reporting miscalculates current/total progress

It's possible for the "progressDetail.current" attribute of events sent out the socket to clients following delta generation progress to become larger than "progressDetail.total". This means either "current" and/or "total" are miscalculated. See the last few "Computing delta" events in the log pasted below.

There's also a stray "Fingerprinting" event sent out last, after the delta completes and returns the created delta image ID.

Complete log:

$ gendelta resin/raspberrypi3-node:6 resin/raspberrypi3-node:7
{ status: 'Fingerprinting', progressDetail: { current: 589824, total: 459634176 }, progress: '[>                                                  ]  589.8kB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 14745600, total: 459634176 }, progress: '[=>                                                 ]  14.75MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 27721728, total: 459634176 }, progress: '[===>                                               ]  27.72MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 40697856, total: 459634176 }, progress: '[====>                                              ]   40.7MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 54263808, total: 459634176 }, progress: '[=====>                                             ]  54.26MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 58392576, total: 459634176 }, progress: '[======>                                            ]  58.39MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 75497472, total: 459634176 }, progress: '[========>                                          ]   75.5MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 84934656, total: 459634176 }, progress: '[=========>                                         ]  84.93MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 101449728, total: 459634176 }, progress: '[===========>                                       ]  101.4MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 117964800, total: 459634176 }, progress: '[============>                                      ]    118MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 128581632, total: 459634176 }, progress: '[=============>                                     ]  128.6MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 145096704, total: 459634176 }, progress: '[===============>                                   ]  145.1MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 155713536, total: 459634176 }, progress: '[================>                                  ]  155.7MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 171048960, total: 459634176 }, progress: '[==================>                                ]    171MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 188743680, total: 459634176 }, progress: '[====================>                              ]  188.7MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 195821568, total: 459634176 }, progress: '[=====================>                             ]  195.8MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 213516288, total: 459634176 }, progress: '[=======================>                           ]  213.5MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 220004352, total: 459634176 }, progress: '[=======================>                           ]    220MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 235929600, total: 459634176 }, progress: '[=========================>                         ]  235.9MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 243007488, total: 459634176 }, progress: '[==========================>                        ]    243MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 251854848, total: 459634176 }, progress: '[===========================>                       ]  251.9MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 254214144, total: 459634176 }, progress: '[===========================>                       ]  254.2MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 257163264, total: 459634176 }, progress: '[===========================>                       ]  257.2MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 260112384, total: 459634176 }, progress: '[============================>                      ]  260.1MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 263061504, total: 459634176 }, progress: '[============================>                      ]  263.1MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 267190272, total: 459634176 }, progress: '[=============================>                     ]  267.2MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 270139392, total: 459634176 }, progress: '[=============================>                     ]  270.1MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 273678336, total: 459634176 }, progress: '[=============================>                     ]  273.7MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 276627456, total: 459634176 }, progress: '[==============================>                    ]  276.6MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 279576576, total: 459634176 }, progress: '[==============================>                    ]  279.6MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 282525696, total: 459634176 }, progress: '[==============================>                    ]  282.5MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 286654464, total: 459634176 }, progress: '[===============================>                   ]  286.7MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 290783232, total: 459634176 }, progress: '[===============================>                   ]  290.8MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 296091648, total: 459634176 }, progress: '[================================>                  ]  296.1MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 304939008, total: 459634176 }, progress: '[=================================>                 ]  304.9MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 315555840, total: 459634176 }, progress: '[==================================>                ]  315.6MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 326172672, total: 459634176 }, progress: '[===================================>               ]  326.2MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 341508096, total: 459634176 }, progress: '[=====================================>             ]  341.5MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 359792640, total: 459634176 }, progress: '[=======================================>           ]  359.8MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 379256832, total: 459634176 }, progress: '[=========================================>         ]  379.3MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 389283840, total: 459634176 }, progress: '[==========================================>        ]  389.3MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 408158208, total: 459634176 }, progress: '[============================================>      ]  408.2MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 423493632, total: 459634176 }, progress: '[==============================================>    ]  423.5MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 441778176, total: 459634176 }, progress: '[================================================>  ]  441.8MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 455933952, total: 459634176 }, progress: '[=================================================> ]  455.9MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprinting', progressDetail: { current: 459603968, total: 459634176 }, progress: '[=================================================> ]  459.6MB/459.6MB', id: 'resin/raspberrypi3-node:6' }
{ status: 'Fingerprint complete', progressDetail: {}, id: 'resin/raspberrypi3-node:6' }
{ status: 'Waiting', progressDetail: {}, id: 'b32979beda01' }
{ status: 'Waiting', progressDetail: {}, id: 'a31f68bd5b81' }
{ status: 'Waiting', progressDetail: {}, id: 'f4235bcb9cbf' }
{ status: 'Waiting', progressDetail: {}, id: '68742abc4abe' }
{ status: 'Waiting', progressDetail: {}, id: 'dc1398457881' }
{ status: 'Waiting', progressDetail: {}, id: '308195e3ac13' }
{ status: 'Waiting', progressDetail: {}, id: 'ac3bde26de69' }
{ status: 'Waiting', progressDetail: {}, id: '2e370bce85fc' }
{ status: 'Waiting', progressDetail: {}, id: '0d35b88a35de' }
{ status: 'Waiting', progressDetail: {}, id: 'e55671a64fe5' }
{ status: 'Waiting', progressDetail: {}, id: '5e606616c95a' }
{ status: 'Waiting', progressDetail: {}, id: '99c88d12570f' }
{ status: 'Waiting', progressDetail: {}, id: '623ffc63fc4c' }
{ status: 'Waiting', progressDetail: {}, id: 'f44beb216be0' }
{ status: 'Waiting', progressDetail: {}, id: '3e84e6f7c9e7' }
{ status: 'Waiting', progressDetail: {}, id: '1c81a1daa8e9' }
{ status: 'Waiting', progressDetail: {}, id: '29481900bb9d' }
{ status: 'Waiting', progressDetail: {}, id: '7c1b5c7f160e' }
{ status: 'Waiting', progressDetail: {}, id: '1a75e471aad0' }
{ status: 'Waiting', progressDetail: {}, id: '0d7c1067130b' }
{ status: 'Skipping common layer', progressDetail: {}, id: 'b32979beda01' }
{ status: 'Skipping common layer', progressDetail: {}, id: 'a31f68bd5b81' }
{ status: 'Skipping common layer', progressDetail: {}, id: 'f4235bcb9cbf' }
{ status: 'Skipping common layer', progressDetail: {}, id: '68742abc4abe' }
{ status: 'Skipping common layer', progressDetail: {}, id: 'dc1398457881' }
{ status: 'Skipping common layer', progressDetail: {}, id: '308195e3ac13' }
{ status: 'Skipping common layer', progressDetail: {}, id: 'ac3bde26de69' }
{ status: 'Skipping common layer', progressDetail: {}, id: '2e370bce85fc' }
{ status: 'Skipping common layer', progressDetail: {}, id: '0d35b88a35de' }
{ status: 'Skipping common layer', progressDetail: {}, id: 'e55671a64fe5' }
{ status: 'Skipping common layer', progressDetail: {}, id: '5e606616c95a' }
{ status: 'Skipping common layer', progressDetail: {}, id: '99c88d12570f' }
{ status: 'Skipping common layer', progressDetail: {}, id: '623ffc63fc4c' }
{ status: 'Skipping common layer', progressDetail: {}, id: 'f44beb216be0' }
{ status: 'Skipping common layer', progressDetail: {}, id: '3e84e6f7c9e7' }
{ status: 'Skipping common layer', progressDetail: {}, id: '1c81a1daa8e9' }
{ status: 'Skipping common layer', progressDetail: {}, id: '29481900bb9d' }
{ status: 'Skipping common layer', progressDetail: {}, id: '7c1b5c7f160e' }
{ status: 'Skipping common layer', progressDetail: {}, id: '1a75e471aad0' }
{ status: 'Computing delta', progressDetail: { current: 418816, total: 41671969 }, progress: '[>                                                  ]  418.8kB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 836608, total: 41671969 }, progress: '[=>                                                 ]  836.6kB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 1254400, total: 41671969 }, progress: '[=>                                                 ]  1.254MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 1672192, total: 41671969 }, progress: '[==>                                                ]  1.672MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 2089984, total: 41671969 }, progress: '[==>                                                ]   2.09MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 2507776, total: 41671969 }, progress: '[===>                                               ]  2.508MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 2925568, total: 41671969 }, progress: '[===>                                               ]  2.926MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 3343360, total: 41671969 }, progress: '[====>                                              ]  3.343MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 3761152, total: 41671969 }, progress: '[====>                                              ]  3.761MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 4178944, total: 41671969 }, progress: '[=====>                                             ]  4.179MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 4596736, total: 41671969 }, progress: '[=====>                                             ]  4.597MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 5014528, total: 41671969 }, progress: '[======>                                            ]  5.015MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 5432320, total: 41671969 }, progress: '[======>                                            ]  5.432MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 5850112, total: 41671969 }, progress: '[=======>                                           ]   5.85MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 6267904, total: 41671969 }, progress: '[=======>                                           ]  6.268MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 6685696, total: 41671969 }, progress: '[========>                                          ]  6.686MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 7103488, total: 41671969 }, progress: '[========>                                          ]  7.103MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 7521280, total: 41671969 }, progress: '[=========>                                         ]  7.521MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 7939072, total: 41671969 }, progress: '[=========>                                         ]  7.939MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 8356864, total: 41671969 }, progress: '[==========>                                        ]  8.357MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 8774656, total: 41671969 }, progress: '[==========>                                        ]  8.775MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 9192448, total: 41671969 }, progress: '[===========>                                       ]  9.192MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 9610240, total: 41671969 }, progress: '[===========>                                       ]   9.61MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 10028032, total: 41671969 }, progress: '[============>                                      ]  10.03MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 10445824, total: 41671969 }, progress: '[============>                                      ]  10.45MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 10863616, total: 41671969 }, progress: '[=============>                                     ]  10.86MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 11281408, total: 41671969 }, progress: '[=============>                                     ]  11.28MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 11699200, total: 41671969 }, progress: '[==============>                                    ]   11.7MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 12116992, total: 41671969 }, progress: '[==============>                                    ]  12.12MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 12534784, total: 41671969 }, progress: '[===============>                                   ]  12.53MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 12952576, total: 41671969 }, progress: '[===============>                                   ]  12.95MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 13370368, total: 41671969 }, progress: '[================>                                  ]  13.37MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 13788160, total: 41671969 }, progress: '[================>                                  ]  13.79MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 14205952, total: 41671969 }, progress: '[=================>                                 ]  14.21MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 14623744, total: 41671969 }, progress: '[=================>                                 ]  14.62MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 15041536, total: 41671969 }, progress: '[==================>                                ]  15.04MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 15459328, total: 41671969 }, progress: '[==================>                                ]  15.46MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 15877120, total: 41671969 }, progress: '[===================>                               ]  15.88MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 16294912, total: 41671969 }, progress: '[===================>                               ]  16.29MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 16712704, total: 41671969 }, progress: '[====================>                              ]  16.71MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 17130496, total: 41671969 }, progress: '[====================>                              ]  17.13MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 17548288, total: 41671969 }, progress: '[=====================>                             ]  17.55MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 17966080, total: 41671969 }, progress: '[=====================>                             ]  17.97MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 18383872, total: 41671969 }, progress: '[======================>                            ]  18.38MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 18801664, total: 41671969 }, progress: '[======================>                            ]   18.8MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 19637248, total: 41671969 }, progress: '[=======================>                           ]  19.64MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 20472832, total: 41671969 }, progress: '[========================>                          ]  20.47MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 22144000, total: 41671969 }, progress: '[==========================>                        ]  22.14MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 22979584, total: 41671969 }, progress: '[===========================>                       ]  22.98MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 23815168, total: 41671969 }, progress: '[============================>                      ]  23.82MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 24650752, total: 41671969 }, progress: '[=============================>                     ]  24.65MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 25068544, total: 41671969 }, progress: '[==============================>                    ]  25.07MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 25486336, total: 41671969 }, progress: '[==============================>                    ]  25.49MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 25904128, total: 41671969 }, progress: '[===============================>                   ]   25.9MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 26321920, total: 41671969 }, progress: '[===============================>                   ]  26.32MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 26739712, total: 41671969 }, progress: '[================================>                  ]  26.74MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 27157504, total: 41671969 }, progress: '[================================>                  ]  27.16MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 27575296, total: 41671969 }, progress: '[=================================>                 ]  27.58MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 27993088, total: 41671969 }, progress: '[=================================>                 ]  27.99MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 28410880, total: 41671969 }, progress: '[==================================>                ]  28.41MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 28828672, total: 41671969 }, progress: '[==================================>                ]  28.83MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 29246464, total: 41671969 }, progress: '[===================================>               ]  29.25MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 29664256, total: 41671969 }, progress: '[===================================>               ]  29.66MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 30081024, total: 41671969 }, progress: '[====================================>              ]  30.08MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 32171520, total: 41671969 }, progress: '[======================================>            ]  32.17MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 33009152, total: 41671969 }, progress: '[=======================================>           ]  33.01MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 33844097, total: 41671969 }, progress: '[========================================>          ]  33.84MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 34680884, total: 41671969 }, progress: '[=========================================>         ]  34.68MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 35516050, total: 41671969 }, progress: '[==========================================>        ]  35.52MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 36351391, total: 41671969 }, progress: '[===========================================>       ]  36.35MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 37188096, total: 41671969 }, progress: '[============================================>      ]  37.19MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 38860020, total: 41671969 }, progress: '[==============================================>    ]  38.86MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 39695872, total: 41671969 }, progress: '[===============================================>   ]   39.7MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 40532033, total: 41671969 }, progress: '[================================================>  ]  40.53MB/41.67MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 41783860, total: 41671969 }, progress: '[==================================================>]  41.78MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 43041808, total: 41671969 }, progress: '[==================================================>]  43.04MB', id: '0d7c1067130b' }
{ status: 'Computing delta', progressDetail: { current: 43816960, total: 41671969 }, progress: '[==================================================>]  43.82MB', id: '0d7c1067130b' }
{ status: 'Delta complete', progressDetail: {}, id: '0d7c1067130b' }
{ status: 'Normal size: 41.67MB, Delta size: 27.4MB, 1.52x improvement' }
{ status: 'Created delta: sha256:daf87f3fad204fab1d0a849d6831d24360b9b89b54d7e457e264423e7b701d27' }
{ status: 'Fingerprinting', progressDetail: { current: 459634176, total: 459634176 }, progress: '[==================================================>]  459.6MB/459.6MB', id: 'resin/raspberrypi3-node:6' }

balena delta image's pull fails when separate delta-data-root is used

Description

When a delta image is pulled in the case that --delta-data-root (and other flags required for this) are set, the pull doesn't seem to succeed with the error:

unexpected EOF. Invalid delta tar archive

Steps to reproduce the issue:

  1. start the balena daemon up with a single base folder: balenad --debug --data-root=$(pwd)/base/balena
  2. create an image (pull in some base image, and just add an extra file, for example)
  3. create a delta between this image and the base image used, tag it, push the image to Docker HUB
  4. stop balena daemon, and restart with a separate delta data root pointing to the previous folder, and a new folder for the data root, such as balenad --delta-data-root=$(pwd)/base/balena --delta-storage-driver=overlay2 --data-root=$(pwd)/top/balena (the correct --delta-storage-driver is needed too)
  5. check that balena now does not report the image (full or delta) in balena images
  6. try to pull the delta pushed earlier

Describe the results you received:

The pull fails with unexpected EOF. Invalid delta tar archive:

debian-delta: Pulling from imrehg/deltatest
4f4fb700ef54: Pull complete 
1c74fe47e344: Ready to download 
Total:  [========>                                          ]      32B/187B
unexpected EOF. Invalid delta tar archive

In the daemon (run with --debug) on the first pull attempt this is the message:

DEBU[2018-08-30T12:35:21.066313192+01:00] Calling POST /v1.35/images/create?fromImage=imrehg%2Fdeltatest&tag=debian-delta 
DEBU[2018-08-30T12:35:21.066492990+01:00] Trying to pull imrehg/deltatest from https://registry-1.docker.io v2 
DEBU[2018-08-30T12:35:22.784842683+01:00] Pulling ref from V2 registry: imrehg/deltatest:debian-delta 
DEBU[2018-08-30T12:35:23.612414067+01:00] pulling blob "sha256:1c74fe47e344589fc1b99d785a44faf71c512bc0aaad2dd71725e887f95b60f1" 
DEBU[2018-08-30T12:35:23.612535111+01:00] pulling blob "sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1" 
DEBU[2018-08-30T12:35:24.277139459+01:00] Applying tar in /home/greg/resin/balenadelta/top/balena/overlay2/8ceed3d52c471f8b60da6d070393889931be3af02b3616eea61f728d3af2b94a/diff 
DEBU[2018-08-30T12:35:24.371635601+01:00] Applied tar sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 to 8ceed3d52c471f8b60da6d070393889931be3af02b3616eea61f728d3af2b94a, size: 0 
INFO[2018-08-30T12:35:24.474578354+01:00] Attempting next endpoint for pull after error: unexpected EOF. Invalid delta tar archive 
INFO[2018-08-30T12:35:24.478186653+01:00] Layer sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 cleaned up 

Describe the results you expected:

I'd expect the pull to succeeds, similarly how it works without separate delta root, which is:

debian-delta: Pulling from imrehg/deltatest
4f4fb700ef54: Already exists 
1c74fe47e344: Pull complete 
Total:  [==================================================>]     155B/155B
Digest: sha256:7f24ca3478a8425c00e79d434d8f8778b86f4418fa8b30c02f64c4ebcc3bc23b
Status: Downloaded newer image for imrehg/deltatest:debian-delta

Additional information you deem important (e.g. issue happens only occasionally):

  • same error both with overlay2 and aufs graphdrivers

Output of balena version:

Client:
 Version:	v17.12.0-2-gc87589c33
 API version:	1.35
 Go version:	go1.10.3
 Git commit:	c87589c33
 Built:	Thu Aug 30 13:03:35 2018
 OS/Arch:	linux/amd64
 Experimental:	false
 Orchestrator:	swarm

Server:
 Engine:
  Version:	v17.12.0-2-gc87589c33
  API version:	1.35 (minimum version 1.12)
  Go version:	go1.10.3
  Git commit:	c87589c33
  Built:	Thu Aug 30 13:03:35 2018
  OS/Arch:	linux/amd64
  Experimental:	false

Output of balena info:

balena info when not running with a separate delta data root:

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 3
Server Version: v17.12.0-2-gc87589c33
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host null
 Log: journald json-file
Swarm: 
 NodeID: 
 Is Manager: false
 Node Address: 
Runtimes: bare runc
Default Runtime: runc
Init Binary: balena-init
containerd version: 
runc version: 13e66eedaddfbfeda2a73d23701000e4e63b5471
init version: N/A (expected: )
Kernel Version: 4.18.5-arch1-1-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 19.34GiB
Name: hydra
ID: MM6E:Q4MZ:MGAC:WMBG:IYX5:7UYU:EWM6:U5E7:2XLT:EGCH:JYVU:EMXR
Docker Root Dir: /home/greg/resin/balenadelta/base/balena
Debug Mode (client): false
Debug Mode (server): false
Username: imrehg
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

balena info when running with --delta-data-root etc:

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: v17.12.0-2-gc87589c33
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host null
 Log: journald json-file
Swarm: 
 NodeID: 
 Is Manager: false
 Node Address: 
Runtimes: bare runc
Default Runtime: runc
Init Binary: balena-init
containerd version: 
runc version: 13e66eedaddfbfeda2a73d23701000e4e63b5471
init version: N/A (expected: )
Kernel Version: 4.18.5-arch1-1-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 19.34GiB
Name: hydra
ID: MM6E:Q4MZ:MGAC:WMBG:IYX5:7UYU:EWM6:U5E7:2XLT:EGCH:JYVU:EMXR
Docker Root Dir: /home/greg/resin/balenadelta/top/balena
Debug Mode (client): false
Debug Mode (server): false
Username: imrehg
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.):

Tested on ArchLinux, as well as ResinOS 2.14.3 (Intel NUC and Raspberry Pi 3)

Device corruption on power failure/app reassignment during download

The symptom for this is the following error:

Failed to download image 'registry2.resin.io/v2/<imageid>@sha256:<shasum>' due to 'failed to register layer:open /var/lib/docker/aufs/layers/<layer>: no such file or directory

A user reported this happening while moving devices between apps during application download, with possible power failure occurring simultaneously.

Can be fixed by 'resetting' balena with the following:

systemctl stop resin-supervisor
systemctl stop balena
rm -rf /var/lib/docker/{aufs,overlay,containers,image,tmp}
systemctl start balena
update-resin-supervisor

Front logo Front conversations

Add support for build secrets by catching up with the 18.09 Docker CE release

Catch up with the 18.09 Docker CE release to provide its build secrets feature:

The new --secret flag for docker build allows the user to pass secret information to be used in the Dockerfile for building docker images in a safe way that will not end up stored in the final image. [...] For example:

# syntax = docker/dockerfile:1.0-experimental
FROM alpine
RUN --mount=type=secret,id=mysecret cat /run/secrets/mysecret # shows secret from default secret location
RUN --mount=type=secret,id=mysecret,dst=/foobar cat /foobar # shows secret from custom secret location

Note for anyone browsing and finding this ticket: balena has also an alternative (beta) secrets implementation. It's not currently compatible with the Docker CE feature, but compatibility work is planned. See also issue: balena-io/balena-cli#1063

Unable to stop or remove paused container

Description
Error response from Balena: You cannot remove a paused container 2fe4a0f0ad97ff011a7d624281a0e8ab7629e4316c1dae3ba470a16c92858c6d. Unpause and then stop the container before attempting removal or force remove

This is different from the behavior of Docker/Moby. The change they made to make it work can be found here: https://github.com/moby/moby/pull/34027/files

Steps to reproduce the issue:

  1. Create container
  2. Pause container
  3. Attempt to stop or delete container

Describe the results you received:
Instead of stopping or removing the container Balena gives the message: "Error response from daemon: You cannot remove a paused container 2fe4a0f0ad97ff011a7d624281a0e8ab7629e4316c1dae3ba470a16c92858c6d. Unpause and then stop the container before attempting removal or force remove"

Describe the results you expected:
A stopped or deleted container. (Like what would be the case with Docker/Moby)

Additional information you deem important (e.g. issue happens only occasionally):
This error is triggered during a SaltStack build of a docker image.

Output of balena version:

Client:
 Version:      unknown-version
 API version:  1.31
 Go version:   go1.8
 Git commit:   unknown-commit
 Built:        unknown-buildtime
 OS/Arch:      linux/arm

Server:
 Version:      17.06.0-dev
 API version:  1.31 (minimum version 1.12)
 Go version:   go1.8
 Git commit:   748e0c102458bbab56e2b928fdffcbf41c8a870c
 Built:        Wed Jan 10 14:54:41 2018
 OS/Arch:      linux/arm
 Experimental: true

Output of balena info:

Containers: 5
 Running: 2
 Paused: 1
 Stopped: 2
Images: 10
Server Version: 17.06.0-dev
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 18
 Dirperm1 Supported: true
Logging Driver: journald
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan null
 Log: journald json-file
Swarm:
 NodeID:
 Is Manager: false
 Node Address:
Runtimes: bare runc
Default Runtime: runc
Init Binary: balena-init
containerd version:  (expected: 3addd840653146c90a254301d6c3a663c7fd6429)
runc version: 13e66eedaddfbfeda2a73d23701000e4e63b5471
init version: 949e6fa-dirty (expected: 949e6facb7738)
Kernel Version: 4.9.59
Operating System: Resin OS 2.9.6+rev1
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 875.8MiB
Name: thisthat
ID: ARLH:KM2S:ZW5S:5KIR:376M:YJVI:PWAP:SQSI:POZL:LEPG:VVMO:DRZS
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No oom kill disable support

Add ARMv5 softfp builds

Per the answer to issue #135 the balena-engine currently only provides binaries for ARMv5 with hardfp. It would be nice if the ARMv5 with softfp were one of the official target binaries. Many ARMv5 chips do not have hardware floating point support, and Arch Linux ARM repos for ARMv5 are soft float only.

Support for RPi Zero

The Raspberry Pi Zero (W) does use the ARM v6L architecture. Trying to start balena on the RPi Zero W with the ARMv6 package results in an invalid machine instruction error. Maybe it needs to be recompiled to be compatible with RPi Zeros ARM processor version. I tried this on the latest Raspbian Stretch version and would be willing to try next / patached versions on the RPi to ensure a valid fix :)

Slow balena pull

Description

We want to use Balena in Screenly OSE, however I noticed that balena pull works much slower than docker pull

Steps to reproduce the issue:

  1. balena pull screenly/screenly-ose-viewer
  2. docker pull screenly/screenly-ose-viewer (on a fresh sd card)
  3. compare time

Describe the results you received:
balena pull works much slower than docker pull

Describe the results you expected:
balena pull works faster, because it was specially built for embedded and IoT use cases

Additional information you deem important (e.g. issue happens only occasionally):
I tested it twice. For the tests purity, I used one device (Raspberry Pi 3 Model B+), one sd-card, and the same type of connection (wi-fi)
This is my comparative table:

Pull tests Test 1 Test 1 Test 2 Test 2
Docker Balena Docker Balena
screenly/screenly-ose-viewer 10:15 16:24 10:12 40:07(!)
screenly/screenly-ose-server 4:44 7:36 5:04 16:35
screenly/screenly-ose-websocket 3:17 5:10 3:09 10:08

Output of balena version:
Client:
Version: unknown-version
API version: 1.31
Go version: go1.9
Git commit: unknown-commit
Built: unknown-buildtime
OS/Arch: linux/arm

Output of balena info:

Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 17.06.0-dev
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host null
Log: journald json-file
Swarm:
NodeID:
Is Manager: false
Node Address:
Runtimes: bare runc
Default Runtime: runc
Init Binary: balena-init
containerd version: (expected: 3addd840653146c90a254301d6c3a663c7fd6429)
runc version: 13e66eedaddfbfeda2a73d23701000e4e63b5471
init version: N/A (expected: )
Kernel Version: 4.14.34-v7+
Operating System: Raspbian GNU/Linux 9 (stretch)
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 808.3MiB
Name: raspberrypi
ID: VXIV:OAS3:ZY2D:356C:KGYI:B7DB:OI5Q:5Y5V:S54K:Z2XK:ZTRE:AZPI
Docker Root Dir: /var/lib/balena
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 memory limit support
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No oom kill disable support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support

Additional environment details (AWS, VirtualBox, physical, etc.):

Balena did not create bind mount sources on container creation

Description

On starting a container, the /tmp/resin-supervisor/services/<appid>/main directory was not created. This meant that the update lock could not be taken (as the only way of successfully writing to /tmp/resin from within the container was to first umount it.

{
  "Type": "bind",
  "Source": "/tmp/resin-supervisor/services/<appid>/main",
  "Destination": "/tmp/resin",
  "Mode": "",
  "RW": true,
  "Propagation": "rprivate"
},

Steps to reproduce the issue:

  • Start a container with a bind mount that doesn't exist.
  • Sometimes that bind mount will not be created.

Describe the results you received:

The source location for the bind mount was not present.

Describe the results you expected:

The source location for the bind mount to have been created by balena.

Additional information you deem important (e.g. issue happens only occasionally):
Issue only happens occassionally

Output of balena version:

root@e8e0eb4:~# balena version
Client:
 Version:      unknown-version
 API version:  1.31
 Go version:   go1.9
 Git commit:   unknown-commit
 Built:        unknown-buildtime
 OS/Arch:      linux/arm

Server:
 Version:      17.06.0-dev
 API version:  1.31 (minimum version 1.12)
 Go version:   go1.9
 Git commit:   73136d1985f28a34705f537e90636cf208734048
 Built:        Tue Mar 13 17:13:43 2018
 OS/Arch:      linux/arm
 Experimental: true

Output of balena info:

root@e8e0eb4:~# balena info
Containers: 2
 Running: 2
 Paused: 0
 Stopped: 0
Images: 2
Server Version: 17.06.0-dev
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 52
 Dirperm1 Supported: true
Logging Driver: journald
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan null
 Log: journald json-file
Swarm:
 NodeID:
 Is Manager: false
 Node Address:
Runtimes: bare runc
Default Runtime: runc
Init Binary: balena-init
containerd version:  (expected: 3addd840653146c90a254301d6c3a663c7fd6429)
runc version: 13e66eedaddfbfeda2a73d23701000e4e63b5471
init version: 949e6fa-dirty (expected: 949e6facb7738)
Kernel Version: 4.9.59
Operating System: Resin OS 2.12.3+rev1
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 748.9MiB
Name: e8e0eb4
ID: HEPW:BIQR:WN74:RAMM:ZGQE:YS3A:DKSE:FHQC:HI4B:UFWL:GHZD:K35D
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.):

Front logo Front conversations

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.