Build your instance Docker image

In this section you will learn to build the docker image of your InvenioRDM instance! Doing so is as simple as running the following command:

docker build -t demo-inveniordm /path/to/your/instance --build-arg include_assets=true

Tag name

In this case we have chosen to call our image demo-inveniordm, but you can choose your own name.

Why is the include_assets flag needed

When running InvenioRDM in local (invenio-cli run), you are running the uWSGI server on your own machine where you have built the statics. On the other hand, when running invenio-cli containerize you are building the docker image and then running it along the other containers. There, invenio-cli takes care of building the statics in the mounted volume for you. However, when building the image on your own (e.g. deploying somewhere else), you need to take care of the statics yourself.

This is the case when deploying in OpenShift. To solve this problem the chart defines a shared volume mounted on the Nginx and the Web containers.

When a volume is mounted it overwrites the contents of the folder (i.e. it will delete the assets). Therefore, we make use of an initContainer to mount the volume in a temporary location and copy to the volume the assets. This way when the volume is mounted into Nginx and Web containers it already has the assets. Being the end result that /static files can be served directly by Nginx.