Update XStudio Docker

Backup the data

The database

If you're using the xqual/xstudio-backup image that comes with our default docker-compose configuration, the database is backuped on a daily basis and you can find the backups in the xstudio-volume-backup volume (/home/backup in the xqual/xstudio-mariadb and xqual/xstudio-backup containers).

It's strongly advised to test your backup files on a regular basis especially before updating your server!

If you're not using our xqual/xstudio-backup image, you probably have a backup process in place. If NOT, please refer to your Database Server guide for more information or check out the Backup/Restore section of the documentation.

Your custom reports

If you developed some custom XSLT reports, it's advised to backup all these XSLT (along with their associated resources i.e. images etc.) before updating.

You can find all your custom XSLT reports in the xqual/xstudio-tomcat container in the /var/lib/tomcat8/webapps/xqual/export.zip file.
So just backup this file by just downloading it from a browser by opening the URL http://<xstudio-docker-host-name>:8080/xqual/export.zip and verify that it contains your report XSLTs.

Backup the configuration files

Connect to the xstudio-tomcat-container container and backup all the configuration files to the dedicated persistent xstudio-volume-tomcat-conf volume (/root/conf in the xqual/xstudio-tomcat container): docker exec -it xstudio-tomcat-container bash

cp /var/lib/tomcat8/webapps/xqual/xstudio.conf /root/conf/xqual/
cp /var/lib/tomcat8/webapps/xqual/requirement.conf /root/conf/xqual/
cp /var/lib/tomcat8/webapps/xqual/bugtracking.conf /root/conf/xqual/
cp /var/lib/tomcat8/webapps/xqual/sso.conf /root/conf/xqual/
cp /var/lib/tomcat8/webapps/xqual/xstudio/xstudio.conf /root/conf/xqual/xstudio/
cp /var/lib/tomcat8/webapps/xqual/xstudio/requirement.conf /root/conf/xqual/xstudio/
cp /var/lib/tomcat8/webapps/xqual/xstudio/bugtracking.conf /root/conf/xqual/xstudio/
cp /var/lib/tomcat8/webapps/xqual/xstudio/sso.conf /root/conf/xqual/xstudio/


When xstudio-tomcat-container will be restarted, it will detect those backup files and will restore them automatically wherever it is needed (hence possibly bypassing some of the parameters in the .env file).

Stop the service

Notify the users of an interruption of service

The first thing to do to avoid loosing some data is to ask all the users to save their data and close their XStudio instances and wait until the update procedure is completed.

Shutdown all the containers

You just need to run docker-compose down.

Configure the version to update to

It's only needed to update the xstudio-tomcat-container container with the latest image version.
To do that, you can edit your docker-compose file and update the version of the tomcat-service's image reference.

tomcat-service:
   image: xqual/xstudio-tomcat:<new version>

You probably do no need to update the version of the xqual/xstudio-mariadb image as the database schema will be automatically updated at the first start of the service (see below).


Restart the service

Startup all the containers

You just need to run docker-compose up.

The new image(s) will be pulled automatically if necessary and the containers created/started.

If updating to a version < 10, start XStudio JNLP a first time as admin to update the database schema (mandatory step!)

Start normally XStudio (not XStudio.web) from your browser (http://<xstudio-docker-host-name>:8080/xqual/xstudio) and log in as admin.
If you're updating to a major version, you MAY be asked again for your admin password to confirm you authorize the system to update the schema of the database. Just confirm and continue.

When the migration was necessary and is completed, XStudio will re-start normally.

If a schema update was necessary, you can use the database integrity checker available from the menu Tools > Check database integrity if you wish to ensure everything's fine.

Your custom reports

If you developed some custom XSLT reports, you need to copy them on the server.

Copy your custom reports in the new /var/lib/tomcat8/webapps/xqual/export.zip file

This means you must pick the new export.zip file, unzip it, copy your custom XSLT files (along with their associated resources i.e. images etc.) in the structure and rezip it.

Check the settings and the user profiles

When some new features that need specific rights are added, their associated rights will be missing from the user profiles so these features are disabled "by default".

So when you update, don't forget to check the user profiles to see if you want to add some new rights to some of your profiles.

The same way, in a newer version some of the new features may require some global settings. These settings have all default values but it's a good idea to check those just after an update.

Notify the users the service is back

Check access to:
- XStudio.web (i.e. http://<xstudio-docker-host-name>:8080/xqual/xstudio.web/)
- XStudio (i.e. http://<xstudio-docker-host-name>:8080/xqual/xstudio/)
- the REST API server (i.e. http://<xstudio-docker-host-name>:8080/xqual/api?command=getInfo)
and inform all the users the service is back.

That's it! your server is now updated and all your users can reconnect from their browser using the same URL.