Skip to content

Instantly share code, notes, and snippets.

@dustinlacewell-wk
Created November 1, 2017 18:02
Show Gist options
  • Save dustinlacewell-wk/4ebfd05d67f4b99e7035f2f2a0d3f3d6 to your computer and use it in GitHub Desktop.
Save dustinlacewell-wk/4ebfd05d67f4b99e7035f2f2a0d3f3d6 to your computer and use it in GitHub Desktop.
{ config, pkgs, lib, ... }:
with import <home-manager/modules/lib/dag.nix> { inherit lib; };
with lib;
with builtins;
let
appName = "Docker.app";
cfg = config.programs.docker;
package = pkgs.stdenv.mkDerivation rec {
name = appName;
src = pkgs.fetchurl {
url = "https://download.docker.com/mac/stable/Docker.dmg";
sha256 = "13qamjb9g1k093i2fn1x5dqlfq828w1zqyww6k9m0xpckd5fd2j8";
};
buildInputs = [ pkgs.undmg ];
installPhase = ''
source $stdenv/setup
mkdir -pv $out/Applications/${appName}
cp -r ./* $out/Applications/${appName}
'';
meta = {
description = "Docker for Mac";
homepage = https://docs.docker.com/docker-for-mac/;
platforms = stdenv.lib.platforms.darwin;
};
};
in {
options = {
programs.docker.enable = mkEnableOption "Docker";
};
config = {
home.packages = [ package ];
home.activation.docker = dagEntryAfter["installPackages"] (let
home = config.home.homeDirectory;
applications = "${home}/.nix-profile/Applications";
source = "${applications}/${appName}";
target = "${home}/Applications";
in ''
if [ -e ${target}/${appName} ]; then
rm -r ${target}/${appName}
fi
osascript << EOF
tell application "Finder"
set mySource to POSIX file "${source}" as alias
make new alias to mySource at POSIX file "${target}"
set name of result to "${appName}"
end tell
EOF
echo "\nNeed root to install Docker for Mac..."
sudo cp ${package}/Applications/${appName}/Contents/Library/LaunchServices/com.docker.vmnetd
sudo cp ${package}/Applications/${appName}/Contents/Resources/com.docker.vmnetd.plist /Library/LaunchDaemons/
sudo chmod 544 /Library/PrivilegedHelperTools/com.docker.vmnetd
sudo chmod 644 /Library/LaunchDaemons/com.docker.vmnetd.plist
sudo launchctl load /Library/LaunchDaemons/com.docker.vmnetd.plist
open -a ${source} --hide
'');
};
}
@copumpkin
Copy link

Looks like you can get stable URLs as follows: https://download.docker.com/mac/stable/1.12.1.12133/Docker.dmg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment