Skip to content

UI live building#

B2SHARE UI can be built in live (watch) mode. To enable the UI live rebuilding, add webpack-watch container to docker-compose.full.yml:

# Container for watching UI code edits, for automatic build of UI
webpack-watch:
  extends:
    file: docker-services.yml
    service: app
  networks:
    - b3share
  env_file: b2share.new.env
  command: ["invenio webpack run start"]
  image: b3share:latest
  #user: "1000:1000"
  # profiles:
  #   - tools
  volumes:
    - static_data:/opt/invenio/var/instance/static
    - uploaded_data:/opt/invenio/var/instance/data
    - archived_data:/opt/invenio/var/instance/archive
    - ./devscripts/:/eudat/
    - ./invenio.cfg:/opt/invenio/var/instance/invenio.cfg
    - ./Pipfile:/opt/invenio/src/Pipfile
    - ./Pipfile.lock:/opt/invenio/src/Pipfile.lock.host
    - ./customized_invenio_packages:/opt/invenio/src/customized_invenio_packages
    - ./site:/opt/invenio/src/site
    - ./ui/assets/:/opt/invenio/var/instance/assets
    - ./ui/templates:/opt/invenio/var/instance/templates

This container watches for UI changes (JavaScript, less, scss, and other buildable files) and rebuilds the UI every time a change is made. The rebuilt image is populated to web-ui and frontend (nginx) containers through static_data mount.

Changes to Jinja templates are reloaded by web-ui container. For live reload, enable debugging for web-ui container. Read more here.

  Last update : 11.09.2026

Last review : 11.09.2026