I’m building releases for balena devices through balena cloud. The release consists of a docker-compose file that references an image in a private registry. Example:
version: '2.1'
services:
someservice:
image: registry.gitlab.com/my-image:5.1.3
Within this image in the private registry, we create a version file to identify the image. If I pull registry.gitlab.com/my-image:5.1.3
locally, run the image with a shell, and print the version file, I get “5.1.3” as expected.
However, when I build this image into a release using balena cloud, update a device to the release, open a shell into the service, then print the version file, I get “5.1.0”, which is the oldest released version of this image and is not the image I requested.
I’ve tried referencing the image in my docker-compose file using it’s sha identifier, which should be completely unique and immutable unlike a tag. That did not work either and exhibited the same failing behavior.
I also tried pushing the release with the --nocache
option appended to the balena push
command. That did not work either and exhibited the same failing behavior.
What could be going on here? I’m completely lost as to how this is possible.
- Are there any known bad interactions with private registries hosted on Gitlab?
- Is there any other caching behavior that could be interfering with this?