about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2025-02-03 09:07:07 -0600
committerFrederick Muriuki Muriithi2025-02-11 12:29:55 -0600
commit5f3fdf7700042025f8688e1b316d2c083b6c5c96 (patch)
treeeb9300af21fa08c5cd8363a5db7978b73a84c8ac
parent08254a505bf9c458d68eac7cb873fe5b0cfc79ec (diff)
downloadgn-machines-5f3fdf7700042025f8688e1b316d2c083b6c5c96.tar.gz
Add `gn-tmpdir` configuration setting to <genenetwork-configuration>
Add the `gn-tmpdir` configuration setting to help with providing a way
to configure a separate temporary directory for the genenetwork
services that is separate from the container's `/tmp` directory.

This might also help in resolving some issue with `/etc/resolv.conf`
not being found in `/tmp` for some reason.
-rw-r--r--genenetwork/services/genenetwork.scm16
1 files changed, 9 insertions, 7 deletions
diff --git a/genenetwork/services/genenetwork.scm b/genenetwork/services/genenetwork.scm
index d01bec3..3f9a823 100644
--- a/genenetwork/services/genenetwork.scm
+++ b/genenetwork/services/genenetwork.scm
@@ -121,6 +121,8 @@
                        (default "/export/data/gn-docs"))
   (gn-virtuoso-ttl-directory genenetwork-configuration-gn-virtuoso-ttl-directory
                              (default "/export/data/virtuoso/ttl"))
+  (gn-tmpdir genenetwork-configuration-gn-tmpdir
+             (default "/opt/gn/tmp"))
   (log-level genenetwork-configuration-log-level
              (default 'warning)
              (sanitize sanitize-log-level)))
@@ -317,7 +319,7 @@ G-expressions or numbers."
 described by @var{config}, a @code{<genenetwork-configuration>}
 object."
   (match-record config <genenetwork-configuration>
-    (genenetwork2 genenetwork3 gn-auth server-name gn-auth-server-name gn2-port gn3-port gn-auth-port sql-uri auth-db xapian-db genotype-files sparql-endpoint gn-sourcecode-directory gn3-data-directory gn2-secrets gn3-secrets gn-auth-secrets llm-db-path log-level)
+    (genenetwork2 genenetwork3 gn-auth server-name gn-auth-server-name gn2-port gn3-port gn-auth-port sql-uri auth-db xapian-db genotype-files sparql-endpoint gn-sourcecode-directory gn3-data-directory gn2-secrets gn3-secrets gn-auth-secrets llm-db-path gn-tmpdir log-level)
     ;; If we mapped only the mysqld.sock socket file, it would break
     ;; when the external mysqld server is restarted.
     (let* ((database-mapping (file-system-mapping
@@ -383,7 +385,7 @@ object."
                      (value gn2-profile))
                     (environment-variable
                      (name "TMPDIR")
-                     (value "/tmp"))
+                     (value gn-tmpdir))
                     (environment-variable
                      (name "GN2_SETTINGS")
                      (value gn2-conf))
@@ -401,8 +403,8 @@ object."
                               (source gn-sourcecode-directory)
                               (target source))
                              (file-system-mapping ; GN2 and GN3 need to share TMPDIR
-                              (source "/tmp")
-                              (target "/tmp")
+                              (source gn-tmpdir)
+                              (target source)
                               (writable? #t))
                              (file-system-mapping
                               (source gn2-conf)
@@ -437,7 +439,7 @@ object."
                      (value gn3-conf))
                     (environment-variable
                      (name "TMPDIR")
-                     (value "/tmp"))
+                     (value gn-tmpdir))
                     (environment-variable
                      (name "GN3_SECRETS")
                      (value gn3-secrets))
@@ -464,8 +466,8 @@ object."
                               (source gn3-data-directory)
                               (target source))    ; Rqtl usese this
                              (file-system-mapping ; GN2 and GN3 need to share TMPDIR
-                              (source "/tmp")
-                              (target "/tmp")
+                              (source gn-tmpdir)
+                              (target source)
                               (writable? #t))
                              (file-system-mapping
                               (source xapian-db)