51 lines
1.4 KiB
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"={};
|
|
};
|
|
};
|
|
};
|
|
});
|
|
}
|