From 6c314970bdb502ad3b7fb3ee0e2dd2ccbd3ca9b6 Mon Sep 17 00:00:00 2001 From: thiloho <123883702+thiloho@users.noreply.github.com> Date: Sun, 29 Sep 2024 15:00:19 +0200 Subject: [PATCH] Create template for docker image --- flake.nix | 2 ++ nix/docker.nix | 45 +++++++++++++++++++++++++ web-app/template-styles/blog-styles.css | 5 +++ web-app/template-styles/docs-styles.css | 5 +++ 4 files changed, 57 insertions(+) create mode 100644 nix/docker.nix diff --git a/flake.nix b/flake.nix index 929608e..178caf4 100644 --- a/flake.nix +++ b/flake.nix @@ -49,6 +49,8 @@ dev-vm = self.nixosConfigurations.dev-vm.config.system.build.vm; default = pkgs.callPackage ./nix/package.nix { }; + + docker = pkgs.callPackage ./nix/docker.nix { }; } ); diff --git a/nix/docker.nix b/nix/docker.nix new file mode 100644 index 0000000..4393df0 --- /dev/null +++ b/nix/docker.nix @@ -0,0 +1,45 @@ +{ + pkgs, + ... +}: + +# Behaviour of the Nix module needs to be replicated, which includes PostgreSQL, NGINX, ACME (DNS01), env variables, etc. +# Basic initialisation template can be found below +let + archtika = pkgs.callPackage ./package.nix { }; + + postgresConf = pkgs.writeText "postgres.conf" '' + + ''; + + nginxConf = pkgs.writeText "nginx.conf" '' + + ''; + + entrypoint = pkgs.writeShellScriptBin "entrypoint" '' + + ''; +in +pkgs.dockerTools.buildLayeredImage { + name = "archtika"; + tag = "latest"; + contents = [ + archtika + entrypoint + pkgs.postgresql_16 + pkgs.nginx + pkgs.acme-sh + pkgs.bash + pkgs.coreutils + ]; + config = { + Cmd = [ "${entrypoint}/bin/entrypoint" ]; + ExposedPorts = { + "80" = { }; + "443" = { }; + }; + Volumes = { + "/var/lib/postgresql/data" = { }; + }; + }; +} diff --git a/web-app/template-styles/blog-styles.css b/web-app/template-styles/blog-styles.css index d5b5b4c..0c524f6 100644 --- a/web-app/template-styles/blog-styles.css +++ b/web-app/template-styles/blog-styles.css @@ -33,6 +33,11 @@ footer { padding-block: var(--space-s); } +footer { + margin-block-start: auto; + text-align: center; +} + .articles ul { display: flex; flex-direction: column; diff --git a/web-app/template-styles/docs-styles.css b/web-app/template-styles/docs-styles.css index 59d1d01..29ca9b8 100644 --- a/web-app/template-styles/docs-styles.css +++ b/web-app/template-styles/docs-styles.css @@ -32,6 +32,11 @@ footer { padding-block: var(--space-s); } +footer { + margin-block-start: auto; + text-align: center; +} + section { scroll-margin-block-start: var(--space-xl); }