{ 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"={}; }; }; }; }); }