write-only-journal/flake.nix

51 lines
1.4 KiB
Nix

{ inputs = {
fenix = {
url = "github:nix-community/fenix";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-utils.url = "github:numtide/flake-utils";
naersk = {
url = "github:nmattia/naersk";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs.url = "nixpkgs/nixpkgs-unstable";
};
outputs = { self, fenix, flake-utils, naersk, nixpkgs }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
target = "x86_64-unknown-linux-musl";
toolchain = with fenix.packages.${system};
combine [
minimal.rustc
minimal.cargo
targets.${target}.latest.rust-std
];
in
{
write-only-journal = (naersk.lib.${system}.override {
cargo = toolchain;
rustc = toolchain;
}).buildPackage {
src = ./.;
CARGO_BUILD_TARGET = target;
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER =
"${pkgs.pkgsCross.aarch64-multiplatform.stdenv.cc}/bin/${target}-gcc";
};
docker = pkgs.dockerTools.buildImage {
name = "write-only-journal";
tag = "latest";
contents = [ self.write-only-journal.${system} ];
config = {
Cmd = [ "write-only-journal" ];
Volumes = { "/journals" = { }; };
User = "1000";
ExposedPorts = {
"8080"={};
};
};
};
});
}