homebrew-cask/Casks/d/docker.rb

131 lines
5.2 KiB
Ruby

cask "docker" do
arch arm: "arm64", intel: "amd64"
on_catalina :or_older do
version "4.15.0,93002"
sha256 arm: "fc8609d57fb8c8264122f581c0f66497e46e171f8027d85d90213527d6226362",
intel: "bee41d646916e579b16b7fae014e2fb5e5e7b5dbaf7c1949821fd311d3ce430b"
livecheck do
skip "Legacy version"
end
depends_on macos: ">= :catalina"
end
on_big_sur :or_newer do
version "4.23.0,120376"
sha256 arm: "88813e65928d86d2ad301e51619109aeb3f46f6e135b355000c8854ac4737cca",
intel: "30bf23633840a5d129c7e125f940f41336176ea0235c7592ab9b5b3f775d5b3e"
livecheck do
url "https://desktop.docker.com/mac/main/#{arch}/appcast.xml"
strategy :sparkle
end
depends_on macos: ">= :big_sur"
end
url "https://desktop.docker.com/mac/main/#{arch}/#{version.csv.second}/Docker.dmg"
name "Docker Desktop"
name "Docker Community Edition"
name "Docker CE"
desc "App to build and share containerized applications and microservices"
homepage "https://www.docker.com/products/docker-desktop"
auto_updates true
conflicts_with formula: %w[
docker
docker-completion
docker-compose
docker-compose-completion
docker-credential-helper-ecr
]
app "Docker.app"
binary "Docker.app/Contents/Resources/bin/com.docker.cli",
target: "/usr/local/bin/com.docker.cli"
binary "Docker.app/Contents/Resources/bin/docker",
target: "/usr/local/bin/docker"
binary "Docker.app/Contents/Resources/bin/docker-compose",
target: "/usr/local/bin/docker-compose"
binary "Docker.app/Contents/Resources/bin/docker-credential-desktop",
target: "/usr/local/bin/docker-credential-desktop"
binary "Docker.app/Contents/Resources/bin/docker-credential-ecr-login",
target: "/usr/local/bin/docker-credential-ecr-login"
binary "Docker.app/Contents/Resources/bin/docker-credential-osxkeychain",
target: "/usr/local/bin/docker-credential-osxkeychain"
binary "Docker.app/Contents/Resources/bin/docker-index",
target: "/usr/local/bin/docker-index"
binary "Docker.app/Contents/Resources/bin/hub-tool",
target: "/usr/local/bin/hub-tool"
binary "Docker.app/Contents/Resources/bin/kubectl",
target: "/usr/local/bin/kubectl.docker"
binary "Docker.app/Contents/Resources/bin/com.docker.vpnkit",
target: "/usr/local/bin/vpnkit"
binary "Docker.app/Contents/Resources/etc/docker.bash-completion",
target: "#{HOMEBREW_PREFIX}/etc/bash_completion.d/docker"
binary "Docker.app/Contents/Resources/etc/docker.zsh-completion",
target: "#{HOMEBREW_PREFIX}/share/zsh/site-functions/_docker"
binary "Docker.app/Contents/Resources/etc/docker.fish-completion",
target: "#{HOMEBREW_PREFIX}/share/fish/vendor_completions.d/docker.fish"
postflight do
kubectl_target = Pathname("/usr/local/bin/kubectl")
# Only link if `kubernetes-cli` is not installed.
next if kubectl_target.exist?
system_command "/bin/ln", args: ["-sfn", staged_path/"Docker.app/Contents/Resources/bin/kubectl", kubectl_target],
sudo: !kubectl_target.dirname.writable?
end
uninstall_postflight do
kubectl_target = Pathname("/usr/local/bin/kubectl")
if kubectl_target.symlink? && kubectl_target.readlink == staged_path/"Docker.app/Contents/Resources/bin/kubectl"
system_command "/bin/rm", args: [kubectl_target],
sudo: !kubectl_target.dirname.writable?
end
end
uninstall delete: [
"/Library/PrivilegedHelperTools/com.docker.socket",
"/Library/PrivilegedHelperTools/com.docker.vmnetd",
],
rmdir: "~/.docker/bin",
launchctl: [
"com.docker.helper",
"com.docker.socket",
"com.docker.vmnetd",
],
quit: "com.docker.docker"
zap trash: [
"/usr/local/bin/docker-compose.backup",
"/usr/local/bin/docker.backup",
"~/.docker",
"~/Library/Application Scripts/com.docker.helper",
"~/Library/Application Scripts/group.com.docker",
"~/Library/Application Support/com.bugsnag.Bugsnag/com.docker.docker",
"~/Library/Application Support/Docker Desktop",
"~/Library/Caches/com.docker.docker",
"~/Library/Caches/com.plausiblelabs.crashreporter.data/com.docker.docker",
"~/Library/Caches/KSCrashReports/Docker",
"~/Library/Containers/com.docker.docker",
"~/Library/Containers/com.docker.helper",
"~/Library/Group Containers/group.com.docker",
"~/Library/HTTPStorages/com.docker.docker",
"~/Library/HTTPStorages/com.docker.docker.binarycookies",
"~/Library/Logs/Docker Desktop",
"~/Library/Preferences/com.docker.docker.plist",
"~/Library/Preferences/com.electron.docker-frontend.plist",
"~/Library/Preferences/com.electron.dockerdesktop.plist",
"~/Library/Saved Application State/com.electron.docker-frontend.savedState",
"~/Library/Saved Application State/com.electron.dockerdesktop.savedState",
],
rmdir: [
"~/Library/Caches/com.plausiblelabs.crashreporter.data",
"~/Library/Caches/KSCrashReports",
]
end