Some checks failed
Build and Publish / build-release (push) Failing after 1m41s
68 lines
2.1 KiB
Nix
68 lines
2.1 KiB
Nix
{
|
|
description = "Policy Service - Phoenix/Commanded CQRS/ES service";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
flake-utils,
|
|
}:
|
|
flake-utils.lib.eachDefaultSystem (
|
|
system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
beamPackages = pkgs.beamPackages;
|
|
pname = "policy_service";
|
|
version = "1.0.0";
|
|
mixFodDeps = beamPackages.fetchMixDeps {
|
|
inherit pname version;
|
|
src = ./.;
|
|
sha256 = "sha256-YqPo8102nqTd6cAxt6O2R+nLLa9UfRLza4qojxoMtqM=";
|
|
};
|
|
package = beamPackages.mixRelease {
|
|
inherit pname version mixFodDeps;
|
|
src = ./.;
|
|
meta = {
|
|
mainProgram = "policy_service";
|
|
};
|
|
removeCookie = false;
|
|
};
|
|
dockerImage = pkgs.dockerTools.buildLayeredImage {
|
|
name = "policy_service";
|
|
contents = [ package pkgs.bashInteractive pkgs.busybox pkgs.shadow pkgs.cacert ];
|
|
extraCommands = ''
|
|
mkdir -p etc/ssl/certs
|
|
mkdir -p etc/pki/tls/certs
|
|
ln -s ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt etc/ssl/certs/ca-bundle.crt
|
|
ln -s ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt etc/ssl/certs/ca-certificates.crt
|
|
ln -s ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt etc/pki/tls/certs/ca-bundle.crt
|
|
'';
|
|
config = {
|
|
Cmd = [ "${package}/bin/policy_service" "start" ];
|
|
Env = [
|
|
"SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"
|
|
"SSL_CERT_DIR=${pkgs.cacert}/etc/ssl/certs"
|
|
"ERL_SSL_PATH=${pkgs.cacert}/etc/ssl/certs"
|
|
];
|
|
};
|
|
};
|
|
in
|
|
{
|
|
packages.default = package;
|
|
packages.dockerImage = dockerImage;
|
|
devShells.default = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
elixir
|
|
elixir-ls
|
|
kubernetes-helm
|
|
git
|
|
];
|
|
};
|
|
}
|
|
);
|
|
}
|