Compose and Dockerfile Copy Files to Container Not working

Hello,

I think im doing something justt a little wrong here. I am trying to run Node-Red, via Balena, with a pre-defined set of flows.json that I provide.

As part of that idea, I have successfully created a docker image, that when run, loads up those flows immediately.

Im doing that by virtue of copying the file in my directory, over into /data/flows.json

However when I then try to use this same file, with Balena, and with a docker-compose.yml, I end up with a blank/brand new Node-Red with the tutorial flows.json. Upon inspection of that node-red service on device, I can find no evidence my flows.json ever made it over, to anywhere inside the container/service.

How do I get the docker-compose.yml to respect my wish to copy files in the Dockerfile file?

Here is my docker-compose.yml along with my directory structure
< will add in a comment to this post as new users are prevented from doing multiple media items >

Here is my docker-compose.yml

Hi,

In your docker-compose you are specifying you want to use an existing image (pulled from the registry), rather than build your own.
If you specify build: <dir with Dockerfile and files> rather than image: nodered/node-red:latest it should build properly.

Thank you TJvV, that makes sense.

I modified by Docker-Compose to point at the local image (noderedtest) I have. The Balena push then fails with error:
Error: pull access denied for noderedtest, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied

I think what is happening is when I ‘balena push’, the Balena servers are trying to build and cannot go and reach that local image I created. I think I need to make that image available on the public internet right?

That does indeed sound like it’s the case.

I believe it should be possible to deploy images made using balena build, but haven’t tried that myself yet. Maybe you can pick them up in your docker-compose then?

I usually just use the build syntax instead of image, so it’s easier to reproduce and I can directly modify things if needed.

Hello,

There indeed is, once you have built the image using balena build. You can use balena deploy to deploy them to balenaCloud. Balena deploy is meant to give more control over how and where your container images are built, allowing for the command to be integrated into your own CI/CD build system. Checkout balena deploy in the CLI docs: balena CLI Documentation - Balena Documentation

Hopefully that helped you out, let us know if you need any more help.