xserver image: Pull Access Denied

I tried to change the xserver service in my Balena project from balenablocks to balenalabs.

Is it correct that balenalabs is newer than balenablocks ? Or which one do you recommend ?

The following error occurs when trying to go from balenablocks to balenalabs version of xserver:

Before, I had the following inside the docker-compose.yml File:

xserver:
        image: balenablocks/xserver
        restart: always
        privileged: true
        labels:
            io.balena.features.dbus: "1"
        volumes:
            # when we start, a UNIX socket is mounted in this directory, for communication to the X server
            - xserver-volume:/tmp/.X11-unix

For the above, everything works and I can push to the Balena fleet without problems.

However, if I exchange the balenablocks/xserver with bh.cr/balenalabs/xserver-amd64, such as:

xserver:
        image: bh.cr/balenalabs/xserver-amd64
        restart: always
        privileged: true
        labels:
            io.balena.features.dbus: "1"
        volumes:
            # when we start, a UNIX socket is mounted in this directory, for communication to the X server
            - xserver-volume:/tmp/.X11-unix

Then I get the following error message when trying to push to the balena fleet :

[Success]        Successfully uploaded images
[Error]          Some services failed to build:
[Error]            Service: xserver
[Error]              Error: (HTTP code 404) unexpected - pull access denied for bh.cr/balenalabs/xserver-amd64, repository does not exist or may require 'docker login': denied: requested access to the resource is denied 
[Info]           Built on x64_01
[Error]          Not deploying release.
Remote build failed

I also tried image: bh.cr/balenalabs/xserver (i.e. without the -amd64). But did not help, same error !!!

Then I tried to upload my own custom Balena Block from a cloned xserver instance. It did it. It worked and under Balena Blocks I find my own custom Block:

Inside the docker-compose.yml File, I exchanged to now take my custom Block, such as:

image: bh.cr/<slug_name>/xserver

or also:

image: bh.cr/<slug_name>/xserver-adm64

It did not work !!!

Again, when trying to push my project to the fleet, I end up once more with the exact same error message:

[Success]        Successfully uploaded images
[Error]          Some services failed to build:
[Error]            Service: xserver
[Error]              Error: (HTTP code 404) unexpected - pull access denied for bh.cr/balenalabs/xserver-amd64, repository does not exist or may require 'docker login': denied: requested access to the resource is denied 
[Info]           Built on x64_01
[Error]          Not deploying release.
Remote build failed

What do I need to do ?

Which of the two xserver possibilities do you recommend ? (i.e. balenablocks/xserver or balenalabs/xserver ??)

Hi,

Thanks for flagging this, you did seem to run in to an issue with the way the block was deployed. It seems it was being deployed automatically using the docker-compose.yml file in the repository rather than the Dockerfile. Because it is a block, this was creating an issue with the way the image was stored in the Hub.

Could you try it again now. I have merged a change here: Rename docker-compose.yml to docker-compose-example.yml by maggie0002 · Pull Request #25 · balena-labs-projects/xserver · GitHub

excellent, now it works ! Thank you very much.

I can now add the following inside my docker-compose.yml file and it compiles…

xserver:
        image: bh.cr/balenalabs/xserver-amd64