Compose and Dockerfile Copy Files to Container Not working


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


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.