diff --git a/17-results-summary-component-go/default.nix b/17-results-summary-component-go/default.nix index 9507f10..8b7ae80 100644 --- a/17-results-summary-component-go/default.nix +++ b/17-results-summary-component-go/default.nix @@ -1,7 +1,27 @@ -{ config, lib, pkgs, ... }: -let pname = "countries-page"; -in { - # todo, building app - # building docker image +{ lib, pkgs, ... }: +let + pname = "results-summary-component"; + version = "0.0.1"; +in rec { + package = pkgs.buildGoModule { + inherit pname version; + src = pkgs.nix-gitignore.gitignoreSource [ ] ./.; + vendorHash = null; # set to "" when get dependencies in go.mod + }; + image = pkgs.dockerTools.buildLayeredImage { + name = pname; + tag = "latest"; + created = "now"; + config = { + Cmd = [ + "${package}/bin/results-summary-component-go" + "-p" + "8080" + "-h" + "0.0.0.0" + ]; + ExposedPorts = { "8080/tcp" = { }; }; + }; + }; # nixos module } diff --git a/17-results-summary-component-go/main.go b/17-results-summary-component-go/main.go index 9f4b696..0b23395 100644 --- a/17-results-summary-component-go/main.go +++ b/17-results-summary-component-go/main.go @@ -68,10 +68,12 @@ func main() { }) var port int + var host string flag.IntVar(&port, "p", 8080, "Specify port for server to start on") + flag.StringVar(&host, "h", "localhost", "Specify host for server to start on") flag.Parse() - address := fmt.Sprintf("localhost:%d", port) + address := fmt.Sprintf("%s:%d", host, port) log.Printf("starting server on %s", address) log.Fatal(http.ListenAndServe(address, nil)) } diff --git a/17-results-summary-component-go/results-summary-component-go b/17-results-summary-component-go/results-summary-component-go new file mode 100755 index 0000000..e027279 Binary files /dev/null and b/17-results-summary-component-go/results-summary-component-go differ diff --git a/flake.nix b/flake.nix index 3cf0e3c..f83cba4 100644 --- a/flake.nix +++ b/flake.nix @@ -36,6 +36,10 @@ inherit pkgs sbt-derivation; lib = pkgs.lib; }; + results-component-go = import ./17-results-summary-component-go { + inherit pkgs; + lib = pkgs.lib; + }; in { devShells.default = pkgs.mkShell { buildInputs = [ @@ -75,6 +79,8 @@ nixosModules.multi-step-form = multi-step-form.module; packages.countries-page = countries-page.package; packages.countries-page-image = countries-page.image; + packages.results-component-go = results-component-go.package; + packages.results-component-go-image = results-component-go.image; }); # see https://serokell.io/blog/practical-nix-flakes }