Build is now nix!

This commit is contained in:
Greg Hellings
2024-04-22 01:38:32 -05:00
parent a373a69ca5
commit e23edf5f07
4 changed files with 80 additions and 13 deletions
+1
View File
@@ -3,3 +3,4 @@ public/*
.hugo_build.lock .hugo_build.lock
None None
.direnv .direnv
result
-9
View File
@@ -1,9 +0,0 @@
FROM klakegg/hugo:0.107.0 AS build
RUN mkdir /build
WORKDIR /build
COPY . /build/
RUN hugo -v
FROM nginx:latest
COPY --from=build /build/public/ /usr/share/nginx/html/
+79 -2
View File
@@ -25,7 +25,9 @@
"x86_64-linux" "x86_64-linux"
"aarch64-linux" "aarch64-linux"
]; ];
perSystem = { config, pkgs, self', ... }: { perSystem = { config, pkgs, self', ... }: let
lib = pkgs.lib;
in {
devshells.default = { devshells.default = {
commands = [ commands = [
{ {
@@ -37,13 +39,88 @@
category = "server"; category = "server";
help = "Start the development server"; help = "Start the development server";
} }
{
package = self'.packages.prod-server;
category = "server";
help = "Start the prod server";
}
]; ];
#devshell.startup.server.text = "${pkgs.hugo}/bin/hugo serve"; #devshell.startup.server.text = "${pkgs.hugo}/bin/hugo serve";
}; };
packages = {
default = pkgs.dockerTools.buildLayeredImage {
name = "gregs-homepage";
tag = "latest";
contents = [
self'.packages.site
(pkgs.buildEnv {
name = "image";
paths = with pkgs; [
dockerTools.fakeNss
nginx
];
pathsToLink = [ "/bin" "/etc" "/var" ];
})
];
fakeRootCommands = ''
mkdir tmp
chmod 0777 tmp
'';
config = {
Cmd = [ (lib.getExe pkgs.nginx) "-c" self'.packages.nginx-config "-e" "stderr" ];
Port = [ 80 ];
};
};
site = pkgs.stdenv.mkDerivation {
name = "Greg's homepage";
nativeBuildInputs = [ pkgs.hugo ];
buildPhase = ''
hugo -v
'';
installPhase = ''
mkdir -p $out
cp -R public/* public/.* $out
'';
src = ./.;
};
nginx-config = pkgs.writeText "nginx.conf" ''
user root root;
worker_processes 10;
pid /tmp/nginx.pid;
daemon off;
error_log stderr;
events {
}
http {
access_log stdout;
include ${pkgs.nginx}/conf/mime.types;
server {
listen 80;
root ${self'.packages.site};
autoindex off;
}
}
'';
};
process-compose = { process-compose = {
dev-server.settings.processes = { dev-server.settings.processes = {
hugo.command = "${pkgs.hugo}/bin/hugo serve"; hugo.command = "${lib.getExe pkgs.hugo} serve";
};
prod-server.settings.processes = {
import.command = "${lib.getExe pkgs.podman} load -i ${self'.packages.default}";
run = {
command = "${lib.getExe pkgs.podman} run --rm -p 8000:80 gregs-homepage:latest";
depends_on.import.condition = "process_completed_successfully";
readiness_probe.http_get = {
host = "localhost";
port = 8000;
};
};
}; };
}; };
-2
View File
@@ -1,2 +0,0 @@
#!/usr/bin/env bash
podman run --rm -it -v $(pwd):/src -p 1313:1313 klakegg/hugo:latest server