ERROR importing cache manifest from myservice-cache

I was following the overhang.io tutorial for creating new plugins. When it comes to the create new template and build image part, I have the ERROR importing cache manifest from myservice-cache. Then the terminal just shows > importing cache manifest from myservice-cache: and stopped.

Does anyone knows how to solve this? I am really stuck here for a long time. Thanks in advance!

  1. What command are you running?
  2. What’s the exact stacktrace?
  3. What’s the content of your plugin?

The command I run is tutor images build myservice and the content of the plugin is exactly the content in tutorial for creating a tutor plugin

Below is the terminal output for the tutor images build myservice. Let me know if there any command or place that can check more detail logs.

(env) ➜ ~ tutor images build myservice

Building image myservice
docker buildx build --tag=myservice --output=type=docker --cache-from=type=registry,ref=myservice-cache '/Users/yuhao/Library/Application Support/tutor/env/plugins/myplugin/build/myservice'
[+] Building 2.5s (8/8) FINISHED                                                
 => [internal] load build definition from Dockerfile                       0.0s
 => => transferring dockerfile: 107B                                       0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [internal] load metadata for docker.io/library/debian:bullseye-slim    1.7s
 => [auth] library/debian:pull token for registry-1.docker.io              0.0s
 => ERROR importing cache manifest from myservice-cache                    0.8s
 => CACHED [1/1] FROM docker.io/library/debian:bullseye-slim@sha256:3bc5e  0.0s
 => => resolve docker.io/library/debian:bullseye-slim@sha256:3bc5e94a0e83  0.0s
 => [auth] library/myservice-cache:pull token for registry-1.docker.io     0.0s
 => exporting to image                                                     0.0s
 => => exporting layers                                                    0.0s
 => => writing image sha256:2045df89fca62c76eda1594fc4600fd1f83bf763e6c30  0.0s
 => => naming to docker.io/library/myservice                               0.0s
------
 > importing cache manifest from myservice-cache:
------
(env) ➜  ~ 

Below are my files related to the plugins. As mentioned before I directly copied and pasted them from the tutorial and no line specify anything about the cache.

my Dockerfile

FROM docker.io/debian:bullseye-slim
CMD echo "what an awesome plugin!"

myplugin.py

from tutor import hooks
import os

template_folder = os.path.join(os.path.dirname(__file__), "templates")
hooks.Filters.ENV_TEMPLATE_ROOTS.add_item(template_folder)
hooks.Filters.ENV_TEMPLATE_TARGETS.add_item(
    ("myplugin/build", "plugins")
)

hooks.Filters.CONFIG_DEFAULTS.add_item(
    ("MYPLUGIN_PLATFORM_IS_PUBLIC", False)
)

hooks.Filters.ENV_PATCHES.add_item(
    (
        "openedx-lms-common-settings",
        "FEATURES['ALLOW_PUBLIC_ACCOUNT_CREATION'] = {% if MYPLUGIN_PLATFORM_IS_PUBLIC %}True{% else %}False{% endif %}",
    )
)

hooks.Filters.IMAGES_BUILD.add_item(
    (
        "myservice", # same name that will be passed to the `build` command
        ("plugins", "myplugin", "build", "myservice"), # path to the Dockerfile folder
        "myservice", # Docker image tag
        (), # custom build arguments that will be passed to the `docker build` command
    )
)

Would that be the tutor CLI problem? As you can see below that even I used --no-cache, the docker command that tutor CLI generated still have the --cache-from. For now I just build the plugin image use docker instead of tutor

tutor images build --no-cache myservice

Building image myservice
docker buildx build --tag=myservice --no-cache --output=type=docker --cache-from=type=registry,ref=myservice-cache '~/Library/Application Support/tutor/env/plugins/myplugin/build/myservice'