Help with multicontainers


#1

Hello, I am trying to move on from my Raspberry Pi3 running Hassio to an Odroid XU4 with a similar setup.
I have struggled to compile Hassio on Odroid XU4 on BalenaOS so have decided to try and deploy each component part myself.

So far, I have successfully installed BalenaOS Dev on my Odroid board and accessing it via the Cloud interface.
Using the Cloud interface command line, I have done “balena pull” for a HomeAssistant docker and a NodeRed docker. Both ‘compiled’ successfully and can be launched individually using “balena run”.

Where I am struggling is with the ‘next step’ i.e. putting everything together - this is what I am trying to achieve:

  • have a file where I can control runtime options, device attachment, other ‘containers’ (e.g. I want to add an mqtt server" etc etc
  • have a file I can do version updates etc… (i.e. update the file, run “docker build” or something, to update versions)

I have come to “docker-compose.yml”, which might do what I need - where I am struggling is: what do I do with that?

I have tried creating a folder on the HostOS called “hassioxu4”, put the file in there and run “Docker build hassioxu4” but this fails as it complains about the lack of a Dockerfile…

So I am a bit stuck… any help would be appreciated!

Question 2: If I were to stay in my single container by single container environment - how do I control docker containers runtime?

Thanks

Here is the “docker-compose.yml” file (nota: spaces are not respected below but they are correct in the file) :

version: ‘1’
services:
homeassistant:
container_name: homeassistant
restart: unless-stopped
image: homeassistant/odroid-xu-homeassistant
depends_on:
devices:
- /dev/ttyACM0:/dev/ttyACM0
- /dev/ttyUSB0:/dev/ttyUSB0
- /dev/ttyUSB1:/dev/ttyUSB1
volumes:
- hass-config:/config
- /etc/localtime:/etc/localtime:ro
- /var
network_mode: host
privileged: true
nodered:
container_name: node-red
restart: unless-stopped
image: nodered/node-red-docker
depends_on:
- “homeassistant”
volumes:
- nodered-data:/data
- /etc/localtime:/etc/localtime:ro
ports:
- “1880:1880”


#2

I have not yet used the balena interface for local development.
So I can not give you any advice on that.

I am using the alternative approach where I prepare the docker-compose.yml on another machine and then use the git push balena master command on that machine to get it deployed on my device (in your case it will be the Odroid board).
A complete example of this approach can be found here: https://www.balena.io/docs/learn/getting-started/raspberrypi3/nodejs/