My Nix Configuration
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

[marvin] update booklore image

dish b0825379 46964e1e

+29 -10
+4 -10
hosts/marvin/services/booklore.nix
··· 2 2 self, 3 3 config, 4 4 pkgs, 5 + self', 5 6 ... 6 7 }: 7 8 let ··· 20 21 in 21 22 { 22 23 virtualisation.oci-containers.containers.booklore-server = { 23 - image = "ghcr.io/booklore-app/booklore:latest"; 24 + image = "dishnet-booklore:${self'.packages.booklore-image.imageTag}"; 25 + imageStream = self'.packages.booklore-image; 24 26 ports = [ "${toString d.port}:${toString d.port}" ]; 25 27 volumes = [ 26 28 "${dataDir}/data:/app/data" 27 29 "/var/media/books/main:/books" 28 30 "${dataDir}/bookdrop:/bookdrop" 31 + "/run/mysqld:/run/mysqld" 29 32 ]; 30 33 environment = { 31 34 USER_ID = "${toString u.uid}"; ··· 34 37 TZ = "America/New_York"; 35 38 DATABASE_USERNAME = "booklore"; 36 39 DATABASE_URL = "jdbc:mariadb://localhost:3306/booklore"; 37 - DATABASE_PASSWORD = "bookloreDatabasePassword123!"; 38 40 }; 39 41 networks = [ "host" ]; 40 42 }; ··· 68 70 } 69 71 ]; 70 72 ensureDatabases = [ "booklore" ]; 71 - initialScript = pkgs.writeText "mysql-init.sql" '' 72 - CREATE DATABASE IF NOT EXISTS booklore; 73 - DROP USER IF EXISTS 'booklore'@'localhost'; 74 - CREATE USER IF NOT EXISTS 'booklore'@'localhost' IDENTIFIED WITH unix_socket; 75 - ALTER USER 'booklore'@'localhost' IDENTIFIED BY 'bookloreDatabasePassword123!'; 76 - GRANT ALL PRIVILEGES ON booklore.* TO 'booklore'@'localhost'; 77 - FLUSH PRIVILEGES; 78 - ''; 79 73 }; 80 74 systemd.services.docker-booklore-server.after = [ "mysql.service" ]; 81 75 }
+25
packages/booklore-image/package.nix
··· 1 + { pkgs, ... }: 2 + let 3 + initScript = pkgs.writeShellScriptBin "booklore-init" '' 4 + setpriv --reuid 940 --regid 940 --clear-groups -- socat tcp-l:3306,reuseaddr,fork unix:/run/mysqld/mysqld.sock & 5 + java -jar /app/app.jar 6 + ''; 7 + 8 + fetchedImage = pkgs.dockerTools.pullImage { 9 + imageName = "ghcr.io/booklore-app/booklore"; 10 + imageDigest = "sha256:346064cb1fef6149dad2d8a373ea5fd1a7e3b61c22540995e40e8452136e202b"; 11 + hash = "sha256-TmfMTllg8uB/5F402kuAt3BBgcjx9lPA5LiQ00rKTI0="; 12 + finalImageName = "ghcr.io/booklore-app/booklore"; 13 + finalImageTag = "v2.2.0"; 14 + }; 15 + in 16 + pkgs.dockerTools.streamLayeredImage { 17 + name = "booklore-dishnet"; 18 + fromImage = fetchedImage; 19 + contents = [ 20 + pkgs.socat 21 + pkgs.util-linux 22 + initScript 23 + ]; 24 + config.Cmd = [ "/bin/booklore-init" ]; 25 + }