Tutor mfe not working. Service nodeos has neither an image nor a build context specified

I am using python 3.9.6 and tutor 16.1.4. Currently installing mfe with 3 services: learning, account and profile and encountering this error.

Does anyone know the reason for the error?

What’s the output of tutor mounts list?

Why did you write that docker-compose.override.yml like this?

I don’t know either, I researched and followed the discussion. I will mount using tutor mounts, right?

To mount the other three frontend-app-* services, I use tutor mount instead of docker-compose.override.yml. right?

Pro tip: don’t ever do that. Well, almost never. Instead, trust the docs: GitHub - overhangio/tutor-mfe: This plugin makes it possible to easily add micro frontend (MFE) applications on top of an Open edX platform that runs with Tutor.


okay, thanks

/bin/cp -rf node_modules/@edx/studio-frontend/dist/i18n/messages/fr.json common/static/common/js/vendor
/bin/cp -rf node_modules/@edx/studio-frontend/dist/i18n/messages/ar.json common/static/common/js/vendor
/bin/cp -rf node_modules/which-country/index.js common/static/common/js/vendor
Copying developer vendor files into static directory
/bin/cp -rf node_modules/sinon/pkg/sinon.js common/static/common/js/vendor
/bin/cp -rf node_modules/squirejs/src/Squire.js common/static/common/js/vendor
 50% [0] building modules 339/351 modules 12 active ...kBrowser/data/actions/courseBlocks.js[BABEL] Note: The code generator has deoptimised the styling of /openedx/edx-platform/common/static/js/vendor/tinymce/js/tinymce/tinymce.js as it exceeds the max of 500KB.
 95% [0] emittingnode:internal/fs/utils:344                                                   
    throw err;

Error: EROFS: read-only file system, open '/openedx/staticfiles/studio/webpack-stats.json'
    at Object.openSync (node:fs:585:3)
    at Object.writeFileSync (node:fs:2155:35)
    at Plugin.writeOutput (/openedx/edx-platform/node_modules/webpack-bundle-tracker/lib/index.js:124:6)
    at Compiler.done (/openedx/edx-platform/node_modules/webpack-bundle-tracker/lib/index.js:98:10)
    at Compiler.applyPlugins (/openedx/edx-platform/node_modules/webpack/node_modules/tapable/lib/Tapable.js:61:14)
    at /openedx/edx-platform/node_modules/webpack/lib/Compiler.js:271:13
    at Compiler.emitRecords (/openedx/edx-platform/node_modules/webpack/lib/Compiler.js:367:37)
    at /openedx/edx-platform/node_modules/webpack/lib/Compiler.js:265:12
    at /openedx/edx-platform/node_modules/webpack/lib/Compiler.js:360:11
    at next (/openedx/edx-platform/node_modules/webpack/node_modules/tapable/lib/Tapable.js:218:11)
    at Compiler.<anonymous> (/openedx/edx-platform/node_modules/webpack/lib/performance/SizeLimitsPlugin.js:99:4)
    at Compiler.applyPluginsAsyncSeries1 (/openedx/edx-platform/node_modules/webpack/node_modules/tapable/lib/Tapable.js:222:13)
    at Compiler.afterEmit (/openedx/edx-platform/node_modules/webpack/lib/Compiler.js:357:8)
    at Compiler.<anonymous> (/openedx/edx-platform/node_modules/webpack/lib/Compiler.js:352:14)
    at /openedx/edx-platform/node_modules/webpack/node_modules/async/dist/async.js:473:16
    at iteratorCallback (/openedx/edx-platform/node_modules/webpack/node_modules/async/dist/async.js:1067:13)
    at /openedx/edx-platform/node_modules/webpack/node_modules/async/dist/async.js:972:16
    at /openedx/edx-platform/node_modules/graceful-fs/graceful-fs.js:61:14
    at FSReqCallback.oncomplete (node:fs:188:23) {
  errno: -30,
  syscall: 'open',
  code: 'EROFS',
  path: '/openedx/staticfiles/studio/webpack-stats.json'
Traceback (most recent call last):
  File "/openedx/bin/openedx-assets", line 218, in <module>
  File "/openedx/bin/openedx-assets", line 89, in main
  File "/openedx/bin/openedx-assets", line 95, in run_build
  File "/openedx/bin/openedx-assets", line 124, in run_webpack
  File "/opt/pyenv/versions/3.8.15/lib/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['webpack', '--progress', '--config=webpack.dev.config.js']' returned non-zero exit status 1.
ERRO[0481] Error waiting for container: container 8205e52d9186bd153e852681771283338fa14af25f13bf91097b0b645c7dc4f6: driver "overlay2" failed to remove root filesystem: unlinkat /var/lib/docker/overlay2/0547f785446ddb2e1ad5b2391b77075001a945c08f2eb3f41b4cc1e36b69d2b0: read-only file system 
Error: Command failed with status 125: docker compose -f /Users/kaidev99/Library/Application Support/tutor/env/local/docker-compose.yml -f /Users/kaidev99/Library/Application Support/tutor/env/dev/docker-compose.yml --project-name tutor_dev -f /Users/kaidev99/Library/Application Support/tutor/env/local/docker-compose.jobs.yml -f /Users/kaidev99/Library/Application Support/tutor/env/dev/docker-compose.jobs.yml run --rm lms-job sh -e -c # When a new local copy of edx-platform is bind-mounted, certain build
# artifacts from the openedx image's edx-platform directory are lost.
# We regenerate them here.

if [ -f /openedx/edx-platform/bindmount-canary ] ; then
        # If this file exists, then edx-platform has not been bind-mounted,
        # so no build artifacts need to be regenerated.
        echo "Using edx-platform from image (not bind-mount)."
        echo "No extra setup is required."

echo "Performing additional setup for bind-mounted edx-platform."
set -x # Echo out executed lines

# Regenerate Open_edX.egg-info
pip install -e .

# Regenerate node_modules
npm clean-install

# Regenerate static assets.
openedx-assets build --env=dev

set -x
echo "Done setting up bind-mounted edx-platform."

After I use tutor mount and run tutor dev launch again, this error occurs.
Here is my mount list:

What’s the output of tutor images build account-dev profile-dev learning-dev?

=> [development 1/4] RUN --mount=type=cache,target=/var/cache/apt,sharing=locked     --mount=type=cache,target=/var/lib/apt,sharing=locked apt update  19.3s
 => [development 2/4] RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared pip install -r requirements/edx/development.txt                  58.3s
 => [development 3/4] RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared pip install ipdb==0.13.13 ipython==8.12.0                        11.0s
 => ERROR [development 4/4] RUN rm -r /openedx/staticfiles &&     mkdir /openedx/staticfiles &&     openedx-assets webpack --env=dev                    47.4s
 > importing cache manifest from openedx-dev:16.1.4-cache:
 > [development 4/4] RUN rm -r /openedx/staticfiles &&     mkdir /openedx/staticfiles &&     openedx-assets webpack --env=dev:
2.931  68% [0] building modules 538/550 modules 12 active ...node_modules/moment/locale /^\.\/.*$/[BABEL] Note: The code generator has deoptimised the styling of /openedx/edx-platform/common/static/js/vendor/tinymce/js/tinymce/tinymce.js as it exceeds the max of 500KB.
 92% [0] chunk asset optimizationTraceback (most recent call last):                           
47.35   File "/openedx/bin/openedx-assets", line 218, in <module>
47.35     main()
47.35   File "/openedx/bin/openedx-assets", line 89, in main
47.35     args.func(args)
47.35   File "/openedx/bin/openedx-assets", line 124, in run_webpack
47.35     subprocess.check_call(
47.35   File "/opt/pyenv/versions/3.8.15/lib/python3.8/subprocess.py", line 364, in check_call
47.35     raise CalledProcessError(retcode, cmd)
47.35 subprocess.CalledProcessError: Command '['webpack', '--progress', '--config=webpack.dev.config.js']' died with <Signals.SIGKILL: 9>.
 255 |     # static assets, then production assets will be served instead.
 256 | >>> RUN rm -r /openedx/staticfiles && \
 257 | >>>     mkdir /openedx/staticfiles && \
 258 | >>>     openedx-assets webpack --env=dev
 259 |     
ERROR: failed to solve: process "/bin/sh -c rm -r /openedx/staticfiles &&     mkdir /openedx/staticfiles &&     openedx-assets webpack --env=dev" did not complete successfully: exit code: 1

I have mounted learning, profile and account. Run npm install of each one. However, after running tutor dev launch again, I got this error.