cloudron build fais with error: Failed to upload app for building: 400 message: accessToken is missing
-
So the
/app/data/docker.json
which resides within the build service app instance, can contain one or many credentials of the docker registries images can be pushed to, if those are private in the first place. https://docs.cloudron.io/apps/docker-builder/#private-registry-authGiven that the error was during image pushing, I guessed the image was built locally fine and only the pushing to the registry failed. So first thing to ensure is the that the image id points to the correct registry and also setup credentials for that. If you use dockerhub then you have to specify the dockerhub credentials here.
All in all you should only ever need to configure things within the app. The mention of the host docker instance was only to narrow down the issue as we didn't seem to get anywhere.
-
The images are build, but not pushed. We have the registry app. Our intention is to push to the registry app. With my cloudron's credentials the error was "unauthorized: incorrect username or password". With the docker credentials the error is "denied: requested access to the resource is denied"
-
Ok so you do not want to even push to the dockerhub? Then you should specify the custom registry instead of
docker.io
in thedocker.json
file with the credentials of that custom registry. Also note that the image repository for that app should then point to the correct registry. You can runcloudron build --set-repository
and it will show an example string likeregistry/username/com.test.cloudronapp
here make sure theregistry
bit is set (otherwise docker falls back to docker.io) -
From where is this error coming from? The registry (is that a cloudron app as well) or is it from the buildservice to the cli tool? Do you have more errors on the server side logs?
Also, maybe a wild guess, but since that error is somewhat common when using Cloudflare proxying, if you use that, please disable that first.
-
@nebulon When we push the image to the Docker registry app, here is what the build app logs are saying:
Nov 27 10:21:23 Application Build Service Worker
Nov 27 10:21:23 Build Id: build-1732720882415
Nov 27 10:21:23 Build logfile: /tmp/build-1732720882415.log
Nov 27 10:21:23 Docker Username: *********
Nov 27 10:21:23 Dockerfile Name: Dockerfile
Nov 27 10:21:23 Image Repo: registry.//app
Nov 27 10:21:23 Image Tag: 20241127-152056-15345a770
Nov 27 10:21:23 Push: true
Nov 27 10:21:23 Source Archive: /tmp/OtULoDB64vB7KxXP8npFeXVT.gz
Nov 27 10:21:23 Use cache: true
Nov 27 10:21:23 build-1732720882415 Building...
Nov 27 10:21:23 build-1732720882415 docker build -t registry.//app:20241127-152056-15345a770 (Dockerfile)
Nov 27 10:21:26 build-1732720882415 Build stream finished
Nov 27 10:21:26 build-1732720882415 Pushing...
Nov 27 10:25:29 2024-11-27T15:25:29Z
Nov 27 10:25:29 </body>
Nov 27 10:25:29 </html>
Nov 27 10:25:29 <body>
Nov 27 10:25:29 <center><h1>413 Request Entity Too Large</h1></center>
Nov 27 10:25:29 <head><title>413 Request Entity Too Large</title></head>
Nov 27 10:25:29 <hr><center>cloudflare</center>
Nov 27 10:25:29 Build build-1732719728695 failed during image pushing.
Nov 27 10:25:29 build-1732719728695 Push failed
Nov 27 10:25:29 build-1732719728695 Push stream finished
Nov 27 10:25:29 build-1732719728695 unknown: <html>
Nov 27 10:34:59 startLogStream: client closed
Nov 27 10:34:59 startLogStream: finished with undefined
Nov 27 10:44:22 2024-11-27T15:44:22Z
Nov 27 10:44:22 </body>
Nov 27 10:44:22 </html>
Nov 27 10:44:22 <body>
Nov 27 10:44:22 <center><h1>413 Request Entity Too Large</h1></center>
Nov 27 10:44:22 <head><title>413 Request Entity Too Large</title></head>
Nov 27 10:44:22 <hr><center>cloudflare</center>
Nov 27 10:44:22 Build build-1732720882415 failed during image pushing.
Nov 27 10:44:22 build-1732720882415 Push failed
Nov 27 10:44:22 build-1732720882415 Push stream finished
Nov 27 10:44:22 build-1732720882415 unknown: <HTML>The build and docker registry app are on the same Cloudron server. I just saw for Cloudflare in logs.. currently proxy is disabled for registry but not for build. Do you think it could be related?
-
Right, Cloudflare proxying causes lots of side-effects and it has a size limit, so anything going through that above the size threshold will fail. So unless you are hosting a rather static website, it is generally not a great idea to use Cloudflare proxying.
-
As mentioned, this was just a wild guess, could be other factors in play here also. Have you tried to rule out some more parts, like only using the buildservice to push to dockerhub instead of your custom registry? The error pretty much hints at some issue with the registry you are using. It would certainly help if you could provide more logging info on that side as well. Also maybe increase memory limit for that?
-
Thank your your assistance, @nebulon. We're finally able to build and install the app.
-
The wrong registry in the docker.json file and cloudfare's "proxying"
-
-
For those that are reading this post... If you plan to host the docker image yourself, this is critical to update the JSON of Docker Registry app with your Cloudron registry domain and credentials.
@nebulon Maybe that would be a great idea to add to the documentation that if a user wants to host the image himself, he should use his Cloudron docker registry domain instead of docker.io. The documentation is currently confusing ^^
Thanks again for your assistance.