Hi, I am running DataSHIELD in a docker container using the Doc template [¹].
Currently I get this error on the Dashboard:
No identifiers database is defined. No identifiers mapping can be performed when importing or exporting data.
… and this error when I test the ID database:
System Error
An internal error has occurred. Please contact technical support and provide the following system error:
ConnectException
The following settings are left from a previous docker run although I deleted the previous images and downloaded the docker images again:
jdbc:mysql://localhost:3306/opal_ids
SQL
Storage
Tabular SQL
opal
Test Edit Unregister
“Unregister” keeps disappearing or gives the “ConnectionException” error above.
It seems something is broken, and some configs from a previous install are left in the system, but even deleting the docker images does not remove this.
How can I fix the ID database errors or clean all info on DataSHIELD and start from clean new docker images?
Kr, Shiny
[1] Installation — Opal documentation
Hi,
It is not an error message, it is a warning that some features will not be available because no ID database is defined. Having an ID database is absolutely not required for Datashield. It may only makes sens when you import from/export to different sources in some specific use cases. Then you most likely do not need to define an ID database.
Regarding docker, deleting an image does not delete the data files of the previous local instance. More specifically if you have mounted the /srv
folder, you’ll get the previous config again.
Also have a look at the docker compose down vs. docker compose stop documentations.
Regards
Yannick
Dear Yannick,
thanks I could solve all problems and start a new docker DataShield image by stopping all processes
docker stop
and removing all processes
docker rm
and removing the images (
docker images,
docker rmi
and deleting all permanent data. (see also docker-compose -f filename.yml down)
To delete the permanent data, I first (before stoping the docker containers) had to login to docker/opal:
docker exec -u 0 -it /bin/bash
and find the mount for /srv mapped to a folder on the host system
findmnt
which was /tmp/opal/ and remove all files with
sudo rm -R /tmp/opal/*
After that I performed
sudo docker-compose -f filename.yml up -d
and it worked without problems.
Good, but it is not a good idea to mount data on /tmp/opal
as at the next server restart the /tmp
folder content will be wiped out.