From ceb85126e95f34998ec8fd2737defb6e62d78221 Mon Sep 17 00:00:00 2001 From: GeorgeRaven Date: Sat, 25 Oct 2025 20:58:24 +0100 Subject: [PATCH] Added most basic postgresql Changelog: added Signed-off-by: GeorgeRaven --- .gitignore | 1 + containers/postgresql/.dockerignore | 2 ++ containers/postgresql/Dockerfile | 31 +++++++++++++++++++++++++++++ containers/postgresql/flake.nix | 13 ++++++++---- 4 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 containers/postgresql/.dockerignore create mode 100644 containers/postgresql/Dockerfile diff --git a/.gitignore b/.gitignore index c0abef3..fd6c93b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ **result +**result-* diff --git a/containers/postgresql/.dockerignore b/containers/postgresql/.dockerignore new file mode 100644 index 0000000..c29d719 --- /dev/null +++ b/containers/postgresql/.dockerignore @@ -0,0 +1,2 @@ +result +Dockerfile diff --git a/containers/postgresql/Dockerfile b/containers/postgresql/Dockerfile new file mode 100644 index 0000000..ef4bec9 --- /dev/null +++ b/containers/postgresql/Dockerfile @@ -0,0 +1,31 @@ +# https://mitchellh.com/writing/nix-with-dockerfiles +ARG GID="1000" +ARG UID="1000" +ARG SRC_DIR="." +ARG PKG_DIR="/app" +ARG NIX_STORE_DIR="/nix/store" + +FROM harbor.deepcypher.me/docker.io/nixos/nix:2.32.1 AS builder +ARG SRC_DIR \ + PKG_DIR +WORKDIR ${PKG_DIR} +COPY ${SRC_DIR} ${PKG_DIR} +RUN nix \ + --extra-experimental-features "nix-command flakes" \ + --option filter-syscalls false \ + build +RUN mkdir /tmp/nix-store-closure && \ + cp -R $(nix-store --query --requisites result/) /tmp/nix-store-closure && \ + ls -alh /tmp/nix-store-closure + +FROM scratch +ARG PKG_DIR \ + UID \ + GID +ENV PKG_DIR=${PKG_DIR} \ + PATH=${PKG_DIR}/bin:${PATH} +COPY --from=builder /tmp/nix-store-closure /nix/store +COPY --from=builder ${PKG_DIR}/result ${PKG_DIR} +USER ${UID}:${GID} +WORKDIR ${PKG_DIR} +CMD ["postgres"] diff --git a/containers/postgresql/flake.nix b/containers/postgresql/flake.nix index a83c892..0ffd1ac 100644 --- a/containers/postgresql/flake.nix +++ b/containers/postgresql/flake.nix @@ -1,23 +1,28 @@ { - description = "A flake to build and provide a postgresql environment"; + description = "Basic postgresql flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/release-25.05"; flake-utils.url = "github:numtide/flake-utils"; + # force subflake dependencies to follow nixpkgs version + # of parent flake + # flake-utils.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem ( + ... + }@inputs: + inputs.flake-utils.lib.eachDefaultSystem ( system: let pkgs = import nixpkgs { inherit system; }; in { + packages.postgresql = pkgs.postgresql; + packages.default = self.packages.${system}.postgresql; # nix fmt formatter option attributes formatter = pkgs.nixfmt-tree; }