Watchtower still does not work for me, what's wrong?

OK I understand your frustration.

You seem to have the same version of docker as me but yours accepts the “–platform” switch and mine doesn’t. Perhaps we can google why that is…

The first page I hit in google talks about experimental features and encrypted credentials so I think the problem might be there.

Is it experimental docker features default for pine64?

I don’t believe so. I am not docker savvy. So, I was told at some point through the beta period that I should add the experimental feature. I was never told to turn it off (and to be honest I would have to google how to do so) so it is as I was told. I would not know to turn on this feature unless I was instructed to do so at some point. Should I turn this off? How do I disable encrypted creds if it is on?

I guess that was here Pull of latest image (for aarch64) failing

In fact I can see you have been struggling with this for 7+ months.

It seems that .docker/config.json is only created if you have logged into something at some point. A “hail mary” might be to delete this file and folder

k, i’ll try to remove the experimental and also remove the file to see if that helps.

Try the config.json first?

I been scratching my head about this and finally noticed that you said above that you pulled the images manually. (message 31 or thereabouts)

I’ve done the following:

  • stopped storjnode
  • removed storjnode
  • stopped watchtower
  • remove watchtower
  • stopped docker
  • removed the .docker/ folder
  • restarted docker
  • pull storjnode
  • restart storjnode
  • restart watchtower
    • used the --run-once option so it will attempt to update immediately

However, I still see the same result when I look at the watchtower logs:

storj@pine64 : ~ $ storj-wt-logs --tail 100
2020-07-14T17:34:28.252448095Z time=“2020-07-14T17:34:28Z” level=info msg=“Running a one time update.”
2020-07-14T17:34:28.252660852Z time=“2020-07-14T17:34:28Z” level=debug msg=“Checking containers for updated images”
2020-07-14T17:34:28.252905442Z time=“2020-07-14T17:34:28Z” level=debug msg=“Retrieving running containers”
2020-07-14T17:34:28.315645863Z time=“2020-07-14T17:34:28Z” level=debug msg=“Pulling storjlabs/watchtower:latest for /watchtower”
2020-07-14T17:34:28.336781523Z time=“2020-07-14T17:34:28Z” level=debug msg=“No credentials for storjlabs in /config.json”
2020-07-14T17:34:28.336911652Z time=“2020-07-14T17:34:28Z” level=debug msg="Got auth value: "
2020-07-14T17:34:28.336938695Z time=“2020-07-14T17:34:28Z” level=debug msg=“Got image name: storjlabs/watchtower:latest”
2020-07-14T17:34:28.336962945Z time=“2020-07-14T17:34:28Z” level=debug msg=“No authentication credentials found for storjlabs/watchtower:latest”
2020-07-14T17:34:29.082020515Z time=“2020-07-14T17:34:29Z” level=debug msg=“No new images found for /watchtower”
2020-07-14T17:34:29.082217021Z time=“2020-07-14T17:34:29Z” level=debug msg=“Pulling storjlabs/storagenode:latest for /storagenode”
2020-07-14T17:34:29.082246772Z time=“2020-07-14T17:34:29Z” level=debug msg=“No credentials for storjlabs in /config.json”
2020-07-14T17:34:29.082271189Z time=“2020-07-14T17:34:29Z” level=debug msg="Got auth value: "
2020-07-14T17:34:29.082293898Z time=“2020-07-14T17:34:29Z” level=debug msg=“Got image name: storjlabs/storagenode:latest”
2020-07-14T17:34:29.082317190Z time=“2020-07-14T17:34:29Z” level=debug msg=“No authentication credentials found for storjlabs/storagenode:latest”
2020-07-14T17:34:29.670216576Z time=“2020-07-14T17:34:29Z” level=debug msg=“No new images found for /storagenode”
2020-07-14T17:34:32.885642480Z time=“2020-07-14T17:34:32Z” level=info msg=“Running a one time update.”
2020-07-14T17:34:32.885810651Z time=“2020-07-14T17:34:32Z” level=debug msg=“Checking containers for updated images”
2020-07-14T17:34:32.885848944Z time=“2020-07-14T17:34:32Z” level=debug msg=“Retrieving running containers”
2020-07-14T17:34:32.918237768Z time=“2020-07-14T17:34:32Z” level=debug msg=“Pulling storjlabs/storagenode:latest for /storagenode”
2020-07-14T17:34:32.918400064Z time=“2020-07-14T17:34:32Z” level=debug msg=“No credentials for storjlabs in /config.json”
2020-07-14T17:34:32.918431440Z time=“2020-07-14T17:34:32Z” level=debug msg="Got auth value: "
2020-07-14T17:34:32.918482275Z time=“2020-07-14T17:34:32Z” level=debug msg=“Got image name: storjlabs/storagenode:latest”
2020-07-14T17:34:32.918507151Z time=“2020-07-14T17:34:32Z” level=debug msg=“No authentication credentials found for storjlabs/storagenode:latest”

So, no difference, it still complains about credentials… :frowning:

That is because you have debug on in your watchtower run command. -d or --debug

Is your storagenode now on 1.6.4 because you have in effect updated it manually?

I turned the debugging on when the update was not happening automatically. And yes I am already at 1.6.4 so I didn’t expect it to actually do the update at this point. However, I have been asking if the update not happening was because of the No authentication credentials and No credentials messages since they seem to be the only thing that seems problematic in this case.

Yup. Confusing log output.
We can’t really update when you are now updated but I think that watchtower is unaware of the --platform flag that you set to pull the image

i.e. watchtower sees storagenode:latest tries to pull it but it doesn’t know to set --platform so it doesn’t find anything.

So we go back to why does pine64 even need the platform set?

hmm, don’t know… I’ll try removing the experimental this evening and try again to see if that makes a difference… have to do my real job now… :slight_smile:

@andrew2.hart

I’ve tried removing the --experimental from the docker.service file and repeated the steps above. However, with the --experimental removed I get this when I try to pull the latest image:

storj@pine64 : ~ $ docker pull storjlabs/storagenode:latest
latest: Pulling from storjlabs/storagenode
no matching manifest for unknown in the manifest list entries

If I try to pull in this state with the --platform aarch64 it says the following:

“–platform” is only supported on a Docker daemon with experimental features enabled

So, somehow the watchdog itself needs to be changed to recognize that the –platform aarch64 is needed in a Pine64 or maybe some other prefix needs to be added for the Pine64 platform. This cannot be a usage/user issue.

1 Like

I googled a little bit, seems it’s a common problem for Pine64 specifically.
For example: https://forum.pine64.org/showthread.php?tid=6994


and so on.

Seems it’s related to the kernel on Pine64, it reports some information unsupported by the docker.

Did not found any solution so far except experimental feature enabling. But it’s works only with explicitly specified --platform when you pull an image. But the docker do not support a --platform option during the run, thus no way for the watchtower to pull the right image…

2 Likes

@Alexey

Thx for finding this. I was under the impression this was only affecting me :slight_smile:.

Anyway, any idea if this only affects Pine64 or does it also affect Rasberry PIs as well? Does anyone have watchtower working on a RPi?

Loads of people have watchtower running on rpi.

1 Like

@BrightSilence

Since both are ARM based processors I was wondering if whatever docker problem that is being seen on Pine64 might also be seen on RPi. Why would Pine64 require the experimental option and the –platform aarch64 and not RPi in that case?

Granted, I am not docker expert so I’m still not totally clear on exactly what is happening… :frowning:

You may also want to look at the links in Alexeys post.

Finally I created an internal issue for that case, maybe we can found a workaround for this kernel bug.

2 Likes

this happens also on a Rock64 (Which is basically a pine64…)

also manual updates seem to go nowhere
docker pull storjlabs/watchtower just tells me:
Status: Image is up to date for storjlabs/storagenode:latest

i run v1.6.4 but i’ve seen posts of v1.6.5…
Watchtower does not generate logs… so i removed the container and image…
Don’t want to risk it murdering my node… will install it when bugs are gone.