This repository houses Guix configuration for GeneNetwork machines and containers.
GeneNetwork development container
The GeneNetwork development container is run on penguin2. It runs continuous integration and continuous deployment services for genenetwork2, genenetwork3 and several other associated projects.
To build and install the container, you will need the guix-bioinformatics and guix-forge channels. Once these channels are pulled and available, on penguin2, run
$ ./genenetwork-development-deploy.sh
penguin2 is configured with a systemd service to run this container. Restart it.
$ sudo systemctl restart genenetwork-development-container
Virtuoso container for tux01 production
The virtuoso container is run on tux01 production. It runs virtuoso alone.
To build and install the container, you will need the guix-bioinformatics channel. Once guix-bioinformatics is pulled and available, on tux01, run
$ ./virtuoso-deploy.sh
tux01 is configured with a systemd service to run this container. Restart it.
$ sudo systemctl restart virtuoso-container
Secure virtuoso authentication
In containers containing virtuoso instances, it is important to secure authentication by changing default user passwords and disabling unnecessary users. See virtuoso gemtext documentation on passwords for more details.
Getting a Shell into the Container
When you start the container, you can get a shell into the container using the
nsenter
command. You will need the process ID of the container, which your
can get with something like:
ps -e | grep shepherd
That will give you output of the form:
11869 pts/3 00:00:00 shepherd
From the guix [/operating-system/ Reference](https://guix.gnu.org/manual/en/html_node/operating_002dsystem-Reference.html) under the packages option, the list of packages installed under the global profile are found in /run/current-system/profile, for example:
/run/current-system/profile/ls /gnu/store
to list the files under /gnu/store
With that knowledge, we can now get a shell using nsenter
as follows:
sudo nsenter -a -t 11869 /run/current-system/profile/bin/bash \ --init-file /run/current-system/profile/etc/profile
which will give you a bash shell with the PATH
environment variable setup
correctly to give you access to all packages in the global profile.