mirror of https://github.com/Nofated095/Q2TG.git
59 lines
2.0 KiB
Nix
59 lines
2.0 KiB
Nix
{ pkgs, flakePkgs, nix2container, ... }:
|
|
nix2container.buildImage {
|
|
name = "q2tg";
|
|
maxLayers = 8;
|
|
# optimizations
|
|
layers = with pkgs;[
|
|
(nix2container.buildLayer {
|
|
copyToRoot = pkgs.buildEnv {
|
|
name = "root";
|
|
paths = [ pkgs.bash pkgs.coreutils ];
|
|
pathsToLink = [ "/bin" ];
|
|
};
|
|
})
|
|
(nix2container.buildLayer { deps = [ nodejs ]; })
|
|
# deps of sharp
|
|
(nix2container.buildLayer {
|
|
deps = [
|
|
(vips.override {
|
|
libjxl = libjxl.overrideAttrs (attrs: {
|
|
doCheck = false;
|
|
});
|
|
}).dev
|
|
];
|
|
})
|
|
# deps of node-canvas
|
|
(nix2container.buildLayer { deps = [ pixman cairo.dev pango.dev giflib libjpeg.dev libpng.dev librsvg.dev ]; })
|
|
(nix2container.buildLayer { deps = [ ffmpeg ]; })
|
|
(nix2container.buildLayer { deps = with flakePkgs;[ prisma-patched prisma-engines tgs-to-gif ]; })
|
|
(nix2container.buildLayer { deps = with flakePkgs;[ fontsSf ]; })
|
|
];
|
|
config = {
|
|
Cmd = [
|
|
(
|
|
pkgs.writeScript "start" ''
|
|
#!${pkgs.bash}/bin/bash
|
|
mkdir -p /tmp /root/.cache
|
|
${flakePkgs.prisma-patched}/bin/prisma db push --accept-data-loss --skip-generate --schema ${flakePkgs.default}/libexec/q2tg/node_modules/.prisma/client/schema.prisma
|
|
${flakePkgs.default}/bin/q2tg
|
|
''
|
|
)
|
|
];
|
|
Env = [
|
|
"DATA_DIR=/app/data"
|
|
"PRISMA_MIGRATION_ENGINE_BINARY=${pkgs.prisma-engines}/bin/migration-engine"
|
|
"PRISMA_QUERY_ENGINE_BINARY=${pkgs.prisma-engines}/bin/query-engine"
|
|
"PRISMA_QUERY_ENGINE_LIBRARY=${pkgs.prisma-engines}/lib/libquery_engine.node"
|
|
"PRISMA_INTROSPECTION_ENGINE_BINARY=${pkgs.prisma-engines}/bin/introspection-engine"
|
|
"PRISMA_FMT_BINARY=${pkgs.prisma-engines}/bin/prisma-fmt"
|
|
"TGS_TO_GIF=${flakePkgs.tgs-to-gif}/bin/tgs-to-gif"
|
|
"FFMPEG_PATH=${pkgs.ffmpeg}/bin/ffmpeg"
|
|
"FFPROBE_PATH=${pkgs.ffmpeg}/bin/ffprobe"
|
|
"FONTCONFIG_PATH=${flakePkgs.fontsSf}"
|
|
];
|
|
Volumes = {
|
|
"/app/data" = { };
|
|
};
|
|
};
|
|
}
|