Sometimes we need to run some utility scripts manually to set up certain things that do not render themselves to automation very well.
This is especially relevant for any script that might need to interact with the SQLite database.
This document notes some gotchas that you might run into trying to run
Start by getting a shell into the CI/CD container:
sudo guix container exec <PID> /run/current-system/profile/bin/bash --login
replacing =<PID>= with the process ID of the container.
Now stop GN3:
herd stop genenetwork3
In a separate terminal on the *host* system, change the owner of the directory and file:
sudo chown -R fredm /export/data/genenetwork-sqlite
Now start a guix shell in the *genenetwork3* repository (on the host) and run the utility script(s) you need to run:
$ cd /home/fredm/genenetwork3 $ guix shell --container --network --share=/export/data/genenetwork-sqlite \ --development --file=guix.scm [env] $ python3 -m scripts.register_sys_admin \ /export/data/genenetwork-sqlite/auth.db
Once you have run (all) the utility script(s) you needed to run, you can exit the shell and restore the file user:
sudo chown -R guixbuilder13 /export/data/genenetwork-sqlite
now go back to the CI/CD container shell and restart genenetwork3:
herd start genenetwork3
then exit the shell.
mount --bind -o rw,umask=0002,gid=1000,uid=1000 \ /home/frederick/genenetwork/local-ci-cd/data/genenetwork-sqlite \ /home/frederick/genenetwork/ci-cd-container-dirs
but the file (and mount target) retain the original permissions.