Skip to content

Instantly share code, notes, and snippets.

@lucabrunox
Created April 14, 2016 18:50
Show Gist options
  • Select an option

  • Save lucabrunox/6fb7377b5c274683e70ebf497df1b827 to your computer and use it in GitHub Desktop.

Select an option

Save lucabrunox/6fb7377b5c274683e70ebf497df1b827 to your computer and use it in GitHub Desktop.

Revisions

  1. Luca Bruno created this gist Apr 14, 2016.
    59 changes: 59 additions & 0 deletions redis-generic-debian.nix
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,59 @@
    { pkgs ? import <nixpkgs> {} }:

    with pkgs;
    let
    redis_3_0_7 = pkgs.redis.overrideDerivation (attrs: rec {
    version = "3.0.7";
    name = "redis-${version}";
    src = fetchurl {
    url = "http://download.redis.io/releases/${name}.tar.gz";
    sha256 = "08vzfdr67gp3lvk770qpax2c5g2sx8hn6p64jn3jddrvxb2939xj";
    };
    });

    redis_2_8_23 = pkgs.redis.overrideDerivation (attrs: rec {
    version = "2.8.23";
    name = "redis-${version}";
    src = fetchurl {
    url = "http://download.redis.io/releases/${name}.tar.gz";
    sha256 = "1kjsx79jhhssh5k9v17s9mifaclkl6mfsrsv0cvi583qyiw9gizk";
    };
    });

    redisImage = redis: baseImage: dockerTools.buildImage {
    name = "redis";
    tag = redis.version;
    fromImage = baseImage;

    runAsRoot = ''
    #!${stdenv.shell}
    export PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH
    ${if baseImage == null then dockerTools.shadowSetup else ""}
    groupadd -r redis
    useradd -r -g redis -d /data -M redis
    mkdir /data
    chown redis:redis /data
    '';

    config = {
    Cmd = [ "${goPackages.gosu.bin}/bin/gosu" "redis" "${redis}/bin/redis-server" ];
    ExposedPorts = {
    "6379/tcp" = {};
    };
    WorkingDir = "/data";
    Volumes = {
    "/data" = {};
    };
    };
    };

    debianImage = dockerTools.pullImage {
    imageName = "debian";
    sha256 = "08w22gx6hmmq75rybqzrxs03nzq2k39lrcj291yhsc08p9d9l9cj";
    };

    in {
    redisDocker_3_0_7 = redisImage redis_3_0_7 null;
    redisDocker_2_8_23 = redisImage redis_2_8_23 null;
    redisOnDebian = redisImage redis_3_0_7 debianImage;
    }