[Solved] Get datasets from docker mapping directory

I don’t know Paste or uwsgi. I didn’t change anything to Galaxy’s inner architecture or config.
My instance is based on Docker image bgruening/galaxy-stable:17.05.

But I just found a way to solve my problems. Here is what I did:

  1. Create a Docker container based on the same Docker image I used previously
    and mapping to the same mapping directory I used previously and which contains
    my datasets.

sudo docker run -d -p XXXX:80 -v /my/old/mapping/dir/:/export/ --name galaxy myGalaxyImage
sudo docker exec -it galaxy /bin/bash

  1. Back-up Postgresql database (inside Docker container).

su - galaxy
pg_dump -U galaxy -W -F t galaxy > dump_galaxy.tar
exit # exit from galaxy user
cp /home/galaxy/dump_galaxy.tar /export/galaxy-central/

  1. Create a new Docker container still based on the same Docker image
    but mapping to a new, empty mapping directory.

sudo docker run -d -p XXXX:80 -v /my/new/mapping/dir/:/export/ --name galaxy_clean myGalaxyImage

  1. Copy back-uped database from the “old” mapping directory to the “new” mapping directory

sudo cp /my/old/mapping/dir/galaxy-central/dump_galaxy.tar /my/new/mapping/dir/galaxy-central/

  1. Connect to “new” Docker container

sudo docker exec -it galaxy_clean /bin/bash

  1. Restore the back-uped Postgresql database (inside “new” Docker container).

cp /export/galaxy-central/dump_galaxy.tar /home/galaxy
su - galaxy
pg_restore -d galaxy dump_galaxy.tar -c -U galaxy
exit # exit from galaxy user
exit # exit from Docker container

  1. Copy datasets files from “old” container to “new” one
    (which are stored in /export/galaxy-central/database/)

sudo tar czf /my/old/mapping/dir/galaxy-central/database.tar.gz /my/old/mapping/dir/galaxy-central/database
sudo cp /my/old/mapping/dir/galaxy-central/database.tar.gz /my/new/mapping/dir/galaxy-central/database.tar.gz
sudo mv /my/new/mapping/dir/galaxy-central/database /my/new/mapping/dir/galaxy-central/database_bak
sudo tar xzf /my/new/mapping/dir/galaxy-central/database.tar.gz

  1. Restart “new” Docker container

sudo docker restart galaxy_clean

I don’t know if what I did is really clean but at least it allowed me to get back my datasets simply from the mapping directory.
Maybe this can help other people as well.