How to set your custom fork repo of mfe discussion app changes on tutor

Hello, I have one question can anyone guide me I fork mfe discussion repo in my git now I have made some changes to it, and how I told the tutor to tack changes on my repo, not the tutor discussion repo. I think I need to create one plugin but which path I set in the plugin? where is the reference in the mfe plugin and how to change the path in the plugin? And in mfe plugin what should I change in my plugin to override?

can I add this way and create my plugin so it will override or is there anything I do?

add this to your config.yml ($(tutor config printroot)/config.yml)

MFE_DISCUSSIONS_MFE_APP:
  name: discussions
  port: 2002
  repository: link_to_your_repo

you’ll need to rebuild your mfe image:

tutor config save
tutor images build mfe
1 Like

hello @Anh_Vu_Nguy_n thanks for the replay, I also add this way with plugin but not work

I am facing this error after set the value in the config.yml file and when I hit tutor images build mfe then in my mac m1 chip.

open-release/olive.2 --depth 1 .:
#12 0.679 Cloning into '.'...
#12 1.675 warning: Could not find remote branch open-release/olive.2 to clone.
#12 1.675 fatal: Remote branch open-release/olive.2 not found in upstream origin
--------
executor failed running [/bin/sh -c git clone https://github.com/myrepo/frontend-app-discussions.git --branch open-release/olive.2 --depth 1 .]: exit code: 128
Error: Command failed with status 1: docker build -t docker.io/overhangio/openedx-mfe:15.0.5 /Users/yagnesh/tvm-olive/env/plugins/mfe/build/mfe

The error said you don’t have the branch open-release/olive.2 in your repo, if you want to use a different branch than the default release:

MFE_DISCUSSIONS_MFE_APP:
  name: discussions
  port: 2002
  repository: <link_to_your_repo>
  version: <branch>

and rebuild the image.

1 Like

hello @Anh_Vu_Nguy_n & @dcoa I would like to thank both of you

hear I have done one mistake I have frok mfe discussion repo with a master branch so there is no other branch in my repo so this issue comes.

hello I add my repo in my config.yml on the above formate

MFE_DISCUSSIONS_MFE_APP:
  name: discussions
  port: 2002
  repository: my fork discussion repo

after tutor config save and then tutor images build mfe but my repo change is to not see in tutor basically this is not working I think the still tutor tack repo of the default openedx repo, not mine is there any solution so tutor tack changes of my repo in a discussion.

did you specify your version (branch) as well?
also, watch the mfe image build log if it clones the right branch.
I’ve done this many times before so I’m sure this method works.

I am using the olive lettest version v15.3.3 and mfe also lettest v15.0.5 si I need to specify this on config.yml? hear is mfe image build log.

Sending build context to Docker daemon  19.97kB
Step 1/214 : FROM docker.io/node:16.14-bullseye-slim AS base
 ---> c49c5d9e27d3
Step 2/214 : RUN apt update   && apt install -y git     gcc libgl1 libxi6 make     autoconf libtool pkg-config zlib1g-dev     python g++
 ---> Using cache
 ---> 63ea95a2db66
Step 3/214 : RUN mkdir -p /openedx/app /openedx/env
 ---> Using cache
 ---> b6c76d4ddb34
Step 4/214 : WORKDIR /openedx/app
 ---> Using cache
 ---> 4d26372c2e27
Step 5/214 : ENV PATH ./node_modules/.bin:${PATH}
 ---> Using cache
 ---> bcb312d47831
Step 6/214 : FROM base AS i18n
 ---> bcb312d47831
Step 7/214 : COPY ./i18n /openedx/i18n
 ---> Using cache
 ---> d3de8ea42f8e
Step 8/214 : RUN chmod a+x /openedx/i18n/*.js
 ---> Using cache
 ---> 74f7293f231a
Step 9/214 : RUN echo "copying i18n data"   && mkdir -p /openedx/i18n/discussions   && mkdir -p /openedx/i18n/authn   && mkdir -p /openedx/i18n/account   && mkdir -p /openedx/i18n/course-authoring   && mkdir -p /openedx/i18n/gradebook   && mkdir -p /openedx/i18n/learning   && mkdir -p /openedx/i18n/profile   echo "done."
 ---> Using cache
 ---> 4738de1e4c76
Step 10/214 : FROM base AS discussions-src
 ---> bcb312d47831
Step 11/214 : RUN git clone https://github.com/yagnesh77/frontend-app-discussions.git --branch open-release/olive.2 --depth 1 .
 ---> Using cache
 ---> fd7849e7ce2c
Step 12/214 : RUN stat /openedx/app/src/i18n/messages 2> /dev/null || (echo "missing messages folder" && mkdir -p /openedx/app/src/i18n/messages)
 ---> Using cache
 ---> 323d27008b60
Step 13/214 : FROM base AS discussions-i18n
 ---> bcb312d47831
Step 14/214 : COPY --from=discussions-src /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> 9b673db06452
Step 15/214 : COPY --from=i18n /openedx/i18n/discussions /openedx/i18n/discussions
 ---> Using cache
 ---> 239d2870ded7
Step 16/214 : COPY --from=i18n /openedx/i18n/i18n-merge.js /openedx/i18n/i18n-merge.js
 ---> Using cache
 ---> d079570847f9
Step 17/214 : RUN /openedx/i18n/i18n-merge.js /openedx/app/src/i18n/messages /openedx/i18n/discussions /openedx/app/src/i18n/messages
 ---> Using cache
 ---> 4e3a6fbe3fb3
Step 18/214 : FROM base AS discussions-common
 ---> bcb312d47831
Step 19/214 : COPY --from=discussions-src /openedx/app/package.json /openedx/app/package.json
 ---> Using cache
 ---> ba19927cf304
Step 20/214 : COPY --from=discussions-src /openedx/app/package-lock.json /openedx/app/package-lock.json
 ---> Using cache
 ---> d0ebf8d02f02
Step 21/214 : ARG NPM_REGISTRY=https://registry.npmjs.org/
 ---> Using cache
 ---> 1f6f5f1b054e
Step 22/214 : ENV CPPFLAGS=-DPNG_ARM_NEON_OPT=0
 ---> Using cache
 ---> 4393f1319be3
Step 23/214 : ENV PACT_SKIP_BINARY_INSTALL=true
 ---> Using cache
 ---> 5f9e307d8dfe
Step 24/214 : RUN npm clean-install --no-audit --no-fund --registry=$NPM_REGISTRY   && rm -rf ~/.npm
 ---> Using cache
 ---> ebe43e46f83b
Step 25/214 : COPY --from=discussions-src /openedx/app /openedx/app
 ---> Using cache
 ---> ab4138698fff
Step 26/214 : COPY --from=discussions-i18n /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> 595a1554bb1d
Step 27/214 : EXPOSE 2002
 ---> Using cache
 ---> e0fa70519e4a
Step 28/214 : ENV APP_ID=discussions
 ---> Using cache
 ---> 205e21d989ba
Step 29/214 : ENV PUBLIC_PATH='/discussions/'
 ---> Using cache
 ---> 4bf52bf11d34
Step 30/214 : ENV MFE_CONFIG_API_URL=/api/mfe_config/v1
 ---> Using cache
 ---> 97667825d11d
Step 31/214 : ARG ENABLE_NEW_RELIC=false
 ---> Using cache
 ---> 9e28e9b3b9f0
Step 32/214 : FROM discussions-common AS discussions-dev
 ---> 9e28e9b3b9f0
Step 33/214 : ENV NODE_ENV=development
 ---> Using cache
 ---> 6c45dd23d500
Step 34/214 : CMD ["/bin/bash", "-c", "npm run start --- --config ./webpack.dev-tutor.config.js"]
 ---> Using cache
 ---> 7d598848f1a3
Step 35/214 : FROM base AS authn-src
 ---> bcb312d47831
Step 36/214 : RUN git clone https://github.com/openedx/frontend-app-authn --branch open-release/olive.2 --depth 1 .
 ---> Using cache
 ---> 3e26021026d8
Step 37/214 : RUN stat /openedx/app/src/i18n/messages 2> /dev/null || (echo "missing messages folder" && mkdir -p /openedx/app/src/i18n/messages)
 ---> Using cache
 ---> 1bd1252d9c51
Step 38/214 : FROM base AS authn-i18n
 ---> bcb312d47831
Step 39/214 : COPY --from=authn-src /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> f30bc579412f
Step 40/214 : COPY --from=i18n /openedx/i18n/authn /openedx/i18n/authn
 ---> Using cache
 ---> 6c317104732d
Step 41/214 : COPY --from=i18n /openedx/i18n/i18n-merge.js /openedx/i18n/i18n-merge.js
 ---> Using cache
 ---> 1867fab1463a
Step 42/214 : RUN /openedx/i18n/i18n-merge.js /openedx/app/src/i18n/messages /openedx/i18n/authn /openedx/app/src/i18n/messages
 ---> Using cache
 ---> a5aa491d528a
Step 43/214 : FROM base AS authn-common
 ---> bcb312d47831
Step 44/214 : COPY --from=authn-src /openedx/app/package.json /openedx/app/package.json
 ---> Using cache
 ---> 3b91e53396d1
Step 45/214 : COPY --from=authn-src /openedx/app/package-lock.json /openedx/app/package-lock.json
 ---> Using cache
 ---> 1b168e7d9128
Step 46/214 : ARG NPM_REGISTRY=https://registry.npmjs.org/
 ---> Using cache
 ---> ee0553fc0b2f
Step 47/214 : ENV CPPFLAGS=-DPNG_ARM_NEON_OPT=0
 ---> Using cache
 ---> d8bf01b3aae3
Step 48/214 : ENV PACT_SKIP_BINARY_INSTALL=true
 ---> Using cache
 ---> 5a3d807250bc
Step 49/214 : RUN npm clean-install --no-audit --no-fund --registry=$NPM_REGISTRY   && rm -rf ~/.npm
 ---> Using cache
 ---> 798c118416c1
Step 50/214 : COPY --from=authn-src /openedx/app /openedx/app
 ---> Using cache
 ---> 85c34de6c170
Step 51/214 : COPY --from=authn-i18n /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> 94aa832d2c6f
Step 52/214 : EXPOSE 1999
 ---> Using cache
 ---> ea29f52ed913
Step 53/214 : ENV APP_ID=authn
 ---> Using cache
 ---> 35a57626b81a
Step 54/214 : ENV PUBLIC_PATH='/authn/'
 ---> Using cache
 ---> 4400687f2687
Step 55/214 : ENV MFE_CONFIG_API_URL=/api/mfe_config/v1
 ---> Using cache
 ---> 17f703a418e9
Step 56/214 : ARG ENABLE_NEW_RELIC=false
 ---> Using cache
 ---> 9a1c406de9a3
Step 57/214 : FROM authn-common AS authn-dev
 ---> 9a1c406de9a3
Step 58/214 : ENV NODE_ENV=development
 ---> Using cache
 ---> 740cb6a8f135
Step 59/214 : CMD ["/bin/bash", "-c", "npm run start --- --config ./webpack.dev-tutor.config.js"]
 ---> Using cache
 ---> 7a312a0978fb
Step 60/214 : FROM base AS account-src
 ---> bcb312d47831
Step 61/214 : RUN git clone https://github.com/openedx/frontend-app-account --branch open-release/olive.2 --depth 1 .
 ---> Using cache
 ---> 3617e4a241a3
Step 62/214 : RUN stat /openedx/app/src/i18n/messages 2> /dev/null || (echo "missing messages folder" && mkdir -p /openedx/app/src/i18n/messages)
 ---> Using cache
 ---> 35ab8e35832c
Step 63/214 : FROM base AS account-i18n
 ---> bcb312d47831
Step 64/214 : COPY --from=account-src /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> 0945b704b166
Step 65/214 : COPY --from=i18n /openedx/i18n/account /openedx/i18n/account
 ---> Using cache
 ---> 8fe8e2409e20
Step 66/214 : COPY --from=i18n /openedx/i18n/i18n-merge.js /openedx/i18n/i18n-merge.js
 ---> Using cache
 ---> bd5b85077e5c
Step 67/214 : RUN /openedx/i18n/i18n-merge.js /openedx/app/src/i18n/messages /openedx/i18n/account /openedx/app/src/i18n/messages
 ---> Using cache
 ---> ff64b112ba67
Step 68/214 : FROM base AS account-common
 ---> bcb312d47831
Step 69/214 : COPY --from=account-src /openedx/app/package.json /openedx/app/package.json
 ---> Using cache
 ---> fbc7c1cf4fb7
Step 70/214 : COPY --from=account-src /openedx/app/package-lock.json /openedx/app/package-lock.json
 ---> Using cache
 ---> 4096134e6fd3
Step 71/214 : ARG NPM_REGISTRY=https://registry.npmjs.org/
 ---> Using cache
 ---> 763b5f89fb20
Step 72/214 : ENV CPPFLAGS=-DPNG_ARM_NEON_OPT=0
 ---> Using cache
 ---> 2a8deb3282a6
Step 73/214 : ENV PACT_SKIP_BINARY_INSTALL=true
 ---> Using cache
 ---> 301c68dfe7f8
Step 74/214 : RUN npm clean-install --no-audit --no-fund --registry=$NPM_REGISTRY   && rm -rf ~/.npm
 ---> Using cache
 ---> b0d53e14d5b5
Step 75/214 : COPY --from=account-src /openedx/app /openedx/app
 ---> Using cache
 ---> 2e6805e62a7a
Step 76/214 : COPY --from=account-i18n /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> d7afef92b8f6
Step 77/214 : EXPOSE 1997
 ---> Using cache
 ---> 59cf601489c7
Step 78/214 : ENV APP_ID=account
 ---> Using cache
 ---> abe753778d99
Step 79/214 : ENV PUBLIC_PATH='/account/'
 ---> Using cache
 ---> db684e4f850c
Step 80/214 : ENV MFE_CONFIG_API_URL=/api/mfe_config/v1
 ---> Using cache
 ---> 7a66fc34aa3c
Step 81/214 : ARG ENABLE_NEW_RELIC=false
 ---> Using cache
 ---> 90254325adb8
Step 82/214 : FROM account-common AS account-dev
 ---> 90254325adb8
Step 83/214 : ENV NODE_ENV=development
 ---> Using cache
 ---> 65e26e7870a6
Step 84/214 : CMD ["/bin/bash", "-c", "npm run start --- --config ./webpack.dev-tutor.config.js"]
 ---> Using cache
 ---> 418ff1348743
Step 85/214 : FROM base AS course-authoring-src
 ---> bcb312d47831
Step 86/214 : RUN git clone https://github.com/openedx/frontend-app-course-authoring --branch open-release/olive.2 --depth 1 .
 ---> Using cache
 ---> 5c85eeeefc79
Step 87/214 : RUN stat /openedx/app/src/i18n/messages 2> /dev/null || (echo "missing messages folder" && mkdir -p /openedx/app/src/i18n/messages)
 ---> Using cache
 ---> 4cc072100547
Step 88/214 : FROM base AS course-authoring-i18n
 ---> bcb312d47831
Step 89/214 : COPY --from=course-authoring-src /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> f845b6e63b26
Step 90/214 : COPY --from=i18n /openedx/i18n/course-authoring /openedx/i18n/course-authoring
 ---> Using cache
 ---> 5ffe5086bd93
Step 91/214 : COPY --from=i18n /openedx/i18n/i18n-merge.js /openedx/i18n/i18n-merge.js
 ---> Using cache
 ---> cf063fc84e6b
Step 92/214 : RUN /openedx/i18n/i18n-merge.js /openedx/app/src/i18n/messages /openedx/i18n/course-authoring /openedx/app/src/i18n/messages
 ---> Using cache
 ---> 1b2a26b143c1
Step 93/214 : FROM base AS course-authoring-common
 ---> bcb312d47831
Step 94/214 : COPY --from=course-authoring-src /openedx/app/package.json /openedx/app/package.json
 ---> Using cache
 ---> 608fda1baf47
Step 95/214 : COPY --from=course-authoring-src /openedx/app/package-lock.json /openedx/app/package-lock.json
 ---> Using cache
 ---> e8f31759370e
Step 96/214 : ARG NPM_REGISTRY=https://registry.npmjs.org/
 ---> Using cache
 ---> 8e8833952c18
Step 97/214 : ENV CPPFLAGS=-DPNG_ARM_NEON_OPT=0
 ---> Using cache
 ---> e7dfdb9e297c
Step 98/214 : ENV PACT_SKIP_BINARY_INSTALL=true
 ---> Using cache
 ---> 13576e8ae795
Step 99/214 : RUN npm clean-install --no-audit --no-fund --registry=$NPM_REGISTRY   && rm -rf ~/.npm
 ---> Using cache
 ---> fe38a0fba0e9
Step 100/214 : COPY --from=course-authoring-src /openedx/app /openedx/app
 ---> Using cache
 ---> a4fc8ea8c5e0
Step 101/214 : COPY --from=course-authoring-i18n /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> 87c696363773
Step 102/214 : EXPOSE 2001
 ---> Using cache
 ---> 14d36e790a62
Step 103/214 : ENV APP_ID=course-authoring
 ---> Using cache
 ---> 7d32d902fcd3
Step 104/214 : ENV PUBLIC_PATH='/course-authoring/'
 ---> Using cache
 ---> aa28d783de18
Step 105/214 : ENV MFE_CONFIG_API_URL=/api/mfe_config/v1
 ---> Using cache
 ---> 47d6039878af
Step 106/214 : ARG ENABLE_NEW_RELIC=false
 ---> Using cache
 ---> d19ee6d541c9
Step 107/214 : FROM course-authoring-common AS course-authoring-dev
 ---> d19ee6d541c9
Step 108/214 : ENV NODE_ENV=development
 ---> Using cache
 ---> 7e5df00474d7
Step 109/214 : CMD ["/bin/bash", "-c", "npm run start --- --config ./webpack.dev-tutor.config.js"]
 ---> Using cache
 ---> 38f42d04e5c1
Step 110/214 : FROM base AS gradebook-src
 ---> bcb312d47831
Step 111/214 : RUN git clone https://github.com/openedx/frontend-app-gradebook --branch open-release/olive.2 --depth 1 .
 ---> Using cache
 ---> 0fe454ad0bb1
Step 112/214 : RUN stat /openedx/app/src/i18n/messages 2> /dev/null || (echo "missing messages folder" && mkdir -p /openedx/app/src/i18n/messages)
 ---> Using cache
 ---> b777d7e4c833
Step 113/214 : FROM base AS gradebook-i18n
 ---> bcb312d47831
Step 114/214 : COPY --from=gradebook-src /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> f97bff034f90
Step 115/214 : COPY --from=i18n /openedx/i18n/gradebook /openedx/i18n/gradebook
 ---> Using cache
 ---> b004b825aeeb
Step 116/214 : COPY --from=i18n /openedx/i18n/i18n-merge.js /openedx/i18n/i18n-merge.js
 ---> Using cache
 ---> 4d16cf223661
Step 117/214 : RUN /openedx/i18n/i18n-merge.js /openedx/app/src/i18n/messages /openedx/i18n/gradebook /openedx/app/src/i18n/messages
 ---> Using cache
 ---> 72d743b6c766
Step 118/214 : FROM base AS gradebook-common
 ---> bcb312d47831
Step 119/214 : COPY --from=gradebook-src /openedx/app/package.json /openedx/app/package.json
 ---> Using cache
 ---> 9d1064a43ef4
Step 120/214 : COPY --from=gradebook-src /openedx/app/package-lock.json /openedx/app/package-lock.json
 ---> Using cache
 ---> 4a0a57fdf79b
Step 121/214 : ARG NPM_REGISTRY=https://registry.npmjs.org/
 ---> Using cache
 ---> b2d27e0613bb
Step 122/214 : ENV CPPFLAGS=-DPNG_ARM_NEON_OPT=0
 ---> Using cache
 ---> daecddc5a8da
Step 123/214 : ENV PACT_SKIP_BINARY_INSTALL=true
 ---> Using cache
 ---> de7eb4d76690
Step 124/214 : RUN npm clean-install --no-audit --no-fund --registry=$NPM_REGISTRY   && rm -rf ~/.npm
 ---> Using cache
 ---> 74f3e5f2a0c9
Step 125/214 : COPY --from=gradebook-src /openedx/app /openedx/app
 ---> Using cache
 ---> 4a29348bb536
Step 126/214 : COPY --from=gradebook-i18n /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> c9b88f6eb7a1
Step 127/214 : EXPOSE 1994
 ---> Using cache
 ---> 2383cc5ec690
Step 128/214 : ENV APP_ID=gradebook
 ---> Using cache
 ---> 0ac9a756edc3
Step 129/214 : ENV PUBLIC_PATH='/gradebook/'
 ---> Using cache
 ---> 6b33863c2e98
Step 130/214 : ENV MFE_CONFIG_API_URL=/api/mfe_config/v1
 ---> Using cache
 ---> 79e501d0de92
Step 131/214 : ARG ENABLE_NEW_RELIC=false
 ---> Using cache
 ---> 961a54bfcdfd
Step 132/214 : FROM gradebook-common AS gradebook-dev
 ---> 961a54bfcdfd
Step 133/214 : ENV NODE_ENV=development
 ---> Using cache
 ---> 927f4068521a
Step 134/214 : CMD ["/bin/bash", "-c", "npm run start --- --config ./webpack.dev-tutor.config.js"]
 ---> Using cache
 ---> f5dc04e0f043
Step 135/214 : FROM base AS learning-src
 ---> bcb312d47831
Step 136/214 : RUN git clone https://github.com/openedx/frontend-app-learning --branch open-release/olive.2 --depth 1 .
 ---> Using cache
 ---> f5bee7bfa54f
Step 137/214 : RUN stat /openedx/app/src/i18n/messages 2> /dev/null || (echo "missing messages folder" && mkdir -p /openedx/app/src/i18n/messages)
 ---> Using cache
 ---> a7cbc15670b5
Step 138/214 : FROM base AS learning-i18n
 ---> bcb312d47831
Step 139/214 : COPY --from=learning-src /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> 9db6837ecc6d
Step 140/214 : COPY --from=i18n /openedx/i18n/learning /openedx/i18n/learning
 ---> Using cache
 ---> bac49d6db134
Step 141/214 : COPY --from=i18n /openedx/i18n/i18n-merge.js /openedx/i18n/i18n-merge.js
 ---> Using cache
 ---> 07a91bc0a2b7
Step 142/214 : RUN /openedx/i18n/i18n-merge.js /openedx/app/src/i18n/messages /openedx/i18n/learning /openedx/app/src/i18n/messages
 ---> Using cache
 ---> 7a4eecf14b13
Step 143/214 : FROM base AS learning-common
 ---> bcb312d47831
Step 144/214 : COPY --from=learning-src /openedx/app/package.json /openedx/app/package.json
 ---> Using cache
 ---> 4fbcabad6494
Step 145/214 : COPY --from=learning-src /openedx/app/package-lock.json /openedx/app/package-lock.json
 ---> Using cache
 ---> e387ab6dd364
Step 146/214 : ARG NPM_REGISTRY=https://registry.npmjs.org/
 ---> Using cache
 ---> f89ab1122cf2
Step 147/214 : ENV CPPFLAGS=-DPNG_ARM_NEON_OPT=0
 ---> Using cache
 ---> 94c8ead353ee
Step 148/214 : ENV PACT_SKIP_BINARY_INSTALL=true
 ---> Using cache
 ---> 0b2b01c3d485
Step 149/214 : RUN npm clean-install --no-audit --no-fund --registry=$NPM_REGISTRY   && rm -rf ~/.npm
 ---> Using cache
 ---> e4b8c1c89281
Step 150/214 : COPY --from=learning-src /openedx/app /openedx/app
 ---> Using cache
 ---> c8fa4c6c66ed
Step 151/214 : COPY --from=learning-i18n /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> 2ae0606bc96d
Step 152/214 : EXPOSE 2000
 ---> Using cache
 ---> f6c82c9c101c
Step 153/214 : ENV APP_ID=learning
 ---> Using cache
 ---> 7b256a485b9a
Step 154/214 : ENV PUBLIC_PATH='/learning/'
 ---> Using cache
 ---> c2ace40e3744
Step 155/214 : ENV MFE_CONFIG_API_URL=/api/mfe_config/v1
 ---> Using cache
 ---> 66bdd30d4978
Step 156/214 : ARG ENABLE_NEW_RELIC=false
 ---> Using cache
 ---> c1e1ca966aba
Step 157/214 : FROM learning-common AS learning-dev
 ---> c1e1ca966aba
Step 158/214 : ENV NODE_ENV=development
 ---> Using cache
 ---> 80284702e390
Step 159/214 : CMD ["/bin/bash", "-c", "npm run start --- --config ./webpack.dev-tutor.config.js"]
 ---> Using cache
 ---> 8539968f7771
Step 160/214 : FROM base AS profile-src
 ---> bcb312d47831
Step 161/214 : RUN git clone https://github.com/openedx/frontend-app-profile --branch open-release/olive.2 --depth 1 .
 ---> Using cache
 ---> 5d39eebfe4e4
Step 162/214 : RUN stat /openedx/app/src/i18n/messages 2> /dev/null || (echo "missing messages folder" && mkdir -p /openedx/app/src/i18n/messages)
 ---> Using cache
 ---> 758b3de056d4
Step 163/214 : FROM base AS profile-i18n
 ---> bcb312d47831
Step 164/214 : COPY --from=profile-src /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> ca9b14abf505
Step 165/214 : COPY --from=i18n /openedx/i18n/profile /openedx/i18n/profile
 ---> Using cache
 ---> 3a4a7a33c3a6
Step 166/214 : COPY --from=i18n /openedx/i18n/i18n-merge.js /openedx/i18n/i18n-merge.js
 ---> Using cache
 ---> e74e53ca3b2c
Step 167/214 : RUN /openedx/i18n/i18n-merge.js /openedx/app/src/i18n/messages /openedx/i18n/profile /openedx/app/src/i18n/messages
 ---> Using cache
 ---> abd3fee464d3
Step 168/214 : FROM base AS profile-common
 ---> bcb312d47831
Step 169/214 : COPY --from=profile-src /openedx/app/package.json /openedx/app/package.json
 ---> Using cache
 ---> eefb82187a42
Step 170/214 : COPY --from=profile-src /openedx/app/package-lock.json /openedx/app/package-lock.json
 ---> Using cache
 ---> bb7859747285
Step 171/214 : ARG NPM_REGISTRY=https://registry.npmjs.org/
 ---> Using cache
 ---> 38cdd157ddb5
Step 172/214 : ENV CPPFLAGS=-DPNG_ARM_NEON_OPT=0
 ---> Using cache
 ---> 697c4a48cbe4
Step 173/214 : ENV PACT_SKIP_BINARY_INSTALL=true
 ---> Using cache
 ---> f96818dc06aa
Step 174/214 : RUN npm clean-install --no-audit --no-fund --registry=$NPM_REGISTRY   && rm -rf ~/.npm
 ---> Using cache
 ---> 5f803cd71f24
Step 175/214 : COPY --from=profile-src /openedx/app /openedx/app
 ---> Using cache
 ---> 13cebed4fa7b
Step 176/214 : COPY --from=profile-i18n /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
 ---> Using cache
 ---> 705937babac0
Step 177/214 : EXPOSE 1995
 ---> Using cache
 ---> 678214886d2f
Step 178/214 : ENV APP_ID=profile
 ---> Using cache
 ---> 5785595fa716
Step 179/214 : ENV PUBLIC_PATH='/profile/'
 ---> Using cache
 ---> 82f9f0ffad7e
Step 180/214 : ENV MFE_CONFIG_API_URL=/api/mfe_config/v1
 ---> Using cache
 ---> c2fa0bf70f4b
Step 181/214 : ARG ENABLE_NEW_RELIC=false
 ---> Using cache
 ---> f7fea3c92267
Step 182/214 : FROM profile-common AS profile-dev
 ---> f7fea3c92267
Step 183/214 : ENV NODE_ENV=development
 ---> Using cache
 ---> 2f27ba98c2fc
Step 184/214 : CMD ["/bin/bash", "-c", "npm run start --- --config ./webpack.dev-tutor.config.js"]
 ---> Using cache
 ---> 20eba0af3df0
Step 185/214 : FROM discussions-common AS discussions-prod
 ---> 9e28e9b3b9f0
Step 186/214 : ENV NODE_ENV=production
 ---> Using cache
 ---> e0588fe44f48
Step 187/214 : RUN npm run build
 ---> Using cache
 ---> 9f5beaf7c11e
Step 188/214 : FROM authn-common AS authn-prod
 ---> 9a1c406de9a3
Step 189/214 : ENV NODE_ENV=production
 ---> Using cache
 ---> 5070bb2243db
Step 190/214 : RUN npm run build
 ---> Using cache
 ---> 89f6cf5d963d
Step 191/214 : FROM account-common AS account-prod
 ---> 90254325adb8
Step 192/214 : ENV NODE_ENV=production
 ---> Using cache
 ---> 9f43b52cdc7f
Step 193/214 : RUN npm run build
 ---> Using cache
 ---> 9ec5ca2c1153
Step 194/214 : FROM course-authoring-common AS course-authoring-prod
 ---> d19ee6d541c9
Step 195/214 : ENV NODE_ENV=production
 ---> Using cache
 ---> 2fd50cb1e716
Step 196/214 : RUN npm run build
 ---> Using cache
 ---> 6e9c85fbbf57
Step 197/214 : FROM gradebook-common AS gradebook-prod
 ---> 961a54bfcdfd
Step 198/214 : ENV NODE_ENV=production
 ---> Using cache
 ---> ff7504e5d23a
Step 199/214 : RUN npm run build
 ---> Using cache
 ---> 840e15c1d6c4
Step 200/214 : FROM learning-common AS learning-prod
 ---> c1e1ca966aba
Step 201/214 : ENV NODE_ENV=production
 ---> Using cache
 ---> 91ffcd673d0d
Step 202/214 : RUN npm run build
 ---> Using cache
 ---> 2651c7eb3cc2
Step 203/214 : FROM profile-common AS profile-prod
 ---> f7fea3c92267
Step 204/214 : ENV NODE_ENV=production
 ---> Using cache
 ---> 43b84e555f59
Step 205/214 : RUN npm run build
 ---> Using cache
 ---> 2345349b1500
Step 206/214 : FROM docker.io/caddy:2.6.3 as production
 ---> 4120819d2095
Step 207/214 : RUN mkdir -p /openedx/dist
 ---> Using cache
 ---> c42167b5deef
Step 208/214 : COPY --from=discussions-prod /openedx/app/dist /openedx/dist/discussions
 ---> Using cache
 ---> 354c7b109b8a
Step 209/214 : COPY --from=authn-prod /openedx/app/dist /openedx/dist/authn
 ---> Using cache
 ---> 6fefbf19e06e
Step 210/214 : COPY --from=account-prod /openedx/app/dist /openedx/dist/account
 ---> Using cache
 ---> b68317286f41
Step 211/214 : COPY --from=course-authoring-prod /openedx/app/dist /openedx/dist/course-authoring
 ---> Using cache
 ---> 275931c8a705
Step 212/214 : COPY --from=gradebook-prod /openedx/app/dist /openedx/dist/gradebook
 ---> Using cache
 ---> 3d8a7b48a21a
Step 213/214 : COPY --from=learning-prod /openedx/app/dist /openedx/dist/learning
 ---> Using cache
 ---> 2897bb760c06
Step 214/214 : COPY --from=profile-prod /openedx/app/dist /openedx/dist/profile
 ---> Using cache
 ---> 04eb408050c8
Successfully built 04eb408050c8
Successfully tagged overhangio/openedx-mfe:15.0.5

I think it likes catch issues so work build with but not pretty sure

tutor images build --no-cache mfe

@Yagnesh I can see in the log:
Step 11/214 : RUN git clone https://github.com/yagnesh77/frontend-app-discussions.git --branch open-release/olive.2 --depth 1
did you make changes in the branch open-release/olive.2 ?
If not then specify in your config like this:

MFE_DISCUSSIONS_MFE_APP:
  name: discussions
  port: 2002
  repository: <your repo>
  version: <your branch>

You should create a branch from open-release/olive.2, let’s say you named it my-custom,
you make change in my-custom and commit it.
then in the config you specify:
version: my-custom

ops I add to forget branch but what I am doing I just changing in my fork repo then I do

git add my files name
git commit "example"
git push origin master

then go To my GitHub account changes are reflected or not then again tutor config save and tutor image build mfe so do I need to specify any version in the config.yml file?

Acording with the context that you provide, you are making changes to the master branch instead to open-release/olive.2, then you have to specify the branch

MFE_DISCUSSIONS_MFE_APP:
  name: discussions
  port: 2002
  repository: <your repo>
  version: master

Then run tutor config save if you want to check if the configuration is updated after saving the config.yml go to env > plugins > mfe > build > Dockerfile, you might look something like:


################ discussions MFE
######## discussions (src)
FROM base AS discussions-src
RUN git clone <your_repo> --branch master --depth 1 .

and follow run tutor images build --no-cache mfe.

1 Like

I hope I am on the right track! :blush:


################ discussions MFE
######## discussions (src)
FROM base AS discussions-src
RUN git clone https://github.com/yagnesh77/frontend-app-discussions.git --branch master --depth 1 .
RUN stat /openedx/app/src/i18n/messages 2> /dev/null || (echo "missing messages folder" && mkdir -p /openedx/app/src/i18n/messages)

######## discussions (i18n)
FROM base AS discussions-i18n
COPY --from=discussions-src /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
COPY --from=i18n /openedx/i18n/discussions /openedx/i18n/discussions
COPY --from=i18n /openedx/i18n/i18n-merge.js /openedx/i18n/i18n-merge.js
RUN /openedx/i18n/i18n-merge.js /openedx/app/src/i18n/messages /openedx/i18n/discussions /openedx/app/src/i18n/messages

######## discussions (common)
FROM base AS discussions-common
COPY --from=discussions-src /openedx/app/package.json /openedx/app/package.json
COPY --from=discussions-src /openedx/app/package-lock.json /openedx/app/package-lock.json
ARG NPM_REGISTRY=https://registry.npmjs.org/

ENV CPPFLAGS=-DPNG_ARM_NEON_OPT=0
ENV PACT_SKIP_BINARY_INSTALL=true
RUN npm clean-install --no-audit --no-fund --registry=$NPM_REGISTRY \
  && rm -rf ~/.npm

COPY --from=discussions-src /openedx/app /openedx/app
COPY --from=discussions-i18n /openedx/app/src/i18n/messages /openedx/app/src/i18n/messages
EXPOSE 2002

# Configuration needed at build time
ENV APP_ID=discussions
ENV PUBLIC_PATH='/discussions/'
# We could in theory point the mfe_config API directly to the LMS. But for that we would
# have to code the LMS url into the mfe image, and this configuration is user-dependent.
# So we point to a relative url that will be a proxy for the LMS.
ENV MFE_CONFIG_API_URL=/api/mfe_config/v1
ARG ENABLE_NEW_RELIC=false

######## discussions (dev)
FROM discussions-common AS discussions-dev
ENV NODE_ENV=development
CMD ["/bin/bash", "-c", "npm run start --- --config ./webpack.dev-tutor.config.js"]
1 Like

Yes, if you build the image you could see your changes.

2 Likes

Is there any way to accomplish this in palm? It appears the process has changed and I still haven’t figured out how to get it to work properly.

I have tried the same changes but it’s not reflecting

Hi @rediris and @rahul.bhaskar. Don’t know if you have solved your issues or not but for adding new MFEs, or modifying any of the existing MFEs you can add a plugin in the tutor-plugins directory. Your plugin should look like this for palm.


from tutormfe.hooks import MFE_APPS

@MFE_APPS.add()
def _add_my_mfe(mfes):
    mfes["discussions"] = {
        "repository": <your-fork-of-discussions-mfe>, 
        "port": 2002,
        "version": <your-tag-or-branch>, # optional, will default to the Open edX current tag.
    }
    return mfes

For older releases you should add the settings to config.yml. Please read the documentation for your version from here. Don’t forget to enable the plugin and build the mfe image by running the following commands:

tutor plugins enable mydiscussionsplugin
tutor config save
tutor images build mfe
tutor local launch

I have added repor changes but after merged changes to my forked master once only changes reflected in learning mfe after that its not reflecting @Anh_Vu_Nguy_n @FatemeKhodayari