diff --git a/bin/complement b/bin/complement index 291953dd8..3161d5757 100755 --- a/bin/complement +++ b/bin/complement @@ -13,12 +13,16 @@ RESULTS_FILE="$3" OCI_IMAGE="complement-conduit:dev" -env \ - -C "$(git rev-parse --show-toplevel)" \ - docker build \ - --tag "$OCI_IMAGE" \ - --file complement/Dockerfile \ - . +#env \ +# -C "$(git rev-parse --show-toplevel)" \ +# docker build \ +# --tag "$OCI_IMAGE" \ +# --file complement/Dockerfile \ +# . + +nix build .#complement-image +docker load < result + # It's okay (likely, even) that `go test` exits nonzero set +o pipefail diff --git a/flake.nix b/flake.nix index 8319b0fdf..7e04579aa 100644 --- a/flake.nix +++ b/flake.nix @@ -193,11 +193,63 @@ ]; }; }; + + createComplementImage = pkgs: base: + pkgs.dockerTools.buildImage { + name = "complement-conduit:dev"; + tag = "dev"; + + fromImage = base; + + copyToRoot = pkgs.stdenv.mkDerivation { + name = "complement_data"; + src = nix-filter { + root = ./.; + include = [ + "complement/caddy.json" + "complement/conduwuit-complement.toml" + ]; + }; + phases = [ "unpackPhase" "installPhase" ]; + installPhase = '' + mkdir -p $out + cp $src/complement/conduwuit-complement.toml $out/conduit.toml + cp $src/complement/caddy.json $out/caddy.json + ''; + }; + + config = { + + Cmd = [ + "${pkgs.bash}/bin/sh" + "-c" + ''${pkgs.lib.getExe pkgs.gnused} -i "s/#server_name = \"your.server.name\"/server_name = \"''${SERVER_NAME}\"/g" conduit.toml &&'' + ''${pkgs.lib.getExe pkgs.gnused} -i "s/your.server.name/''${SERVER_NAME}/g" caddy.json &&'' + "${pkgs.lib.getExe pkgs.caddy} start --config caddy.json > /dev/null &&" + ] ++ base.buildArgs.config.Cmd; + + Volumes = { "/complement" = { }; }; + + Env = [ + "SSL_CERT_FILE=/complement/ca/ca.crt" + "SERVER_NAME=localhost" + "CONDUIT_CONFIG=/conduit.toml" + ]; + + ExposedPorts = { + "8008/tcp" = {}; + "8448/tcp" = {}; + }; + + }; + + }; in { packages = { default = package pkgsHost; oci-image = mkOciImage pkgsHost self.packages.${system}.default; + complement-image = createComplementImage pkgsHost self.packages.${system}.oci-image; } // builtins.listToAttrs