Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- { stdenv, symlinkJoin, dockerTools, coreutils, writeScript, glibcLocales,
- metadrift }:
- let
- metadriftConfig = {
- environment.systemPackages = [ metadrift ];
- };
- minimalDocker =
- {
- imports = [ <nixpkgs/nixos/modules/profiles/minimal.nix> ];
- boot.isContainer = true;
- environment.etc.machine-id.text = "00000000000000000000000000000000";
- };
- eval =
- import <nixos/lib/eval-config.nix> {
- modules = [
- minimalDocker
- metadriftConfig
- ];
- };
- system =
- eval.config.system;
- rootDir = "/data";
- homeDir = "${rootDir}/var/lib/metadrift";
- logDir = "/data/log";
- port = 8743;
- entrypoint = writeScript "entrypoint.sh" ''
- #!${stdenv.shell}
- set -e
- exec ${metadrift}/bin/metadrift-exe --port ${toString port}
- '';
- in
- dockerTools.buildImage rec {
- name = "metadrift";
- contents = symlinkJoin {
- name = "${name}-contents";
- paths = [
- system.build.etc
- system.path
- ];
- };
- config = {
- Cmd = [ "${entrypoint}" ];
- Env = [ "PATH=${coreutils}/bin:$PATH"
- ''LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"''];
- ExposedPorts = {
- "${toString port}/tcp" = {};
- };
- WorkingDir = "/data";
- Volumes = {
- "/data" = {};
- };
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement