;;; This file describes a Guix system container to run the database ;;; services required by genenetwork2 locally on your own ;;; machine. This is to allow a purely offline development setup for ;;; hacking on genenetwork2. To build and run the container, use ;;; db-container.sh. (use-modules (gnu) (gnu packages databases) (gnu services databases)) (define %mariadb-state-directory "/var/lib/mysql") (define set-permissions-gexp (with-imported-modules '((guix build utils)) #~(begin (use-modules (guix build utils)) ;; Set ownership of mariadb state directory. (let ((user (getpw "mysql"))) (for-each (lambda (file) (chown file (passwd:uid user) (passwd:gid user))) (find-files #$%mariadb-state-directory #:directories? #t)))))) (operating-system (host-name "genenetwork2") (timezone "Etc/UTC") (locale "en_US.utf8") (bootloader (bootloader-configuration (bootloader grub-bootloader) (targets (list "does-not-matter")))) (file-systems %base-file-systems) (services (cons* (service mysql-service-type) (service redis-service-type) (simple-service 'set-permissions activation-service-type set-permissions-gexp) %base-services)))