homebrew-cask/Casks/d/docker.rb

143 lines
5.5 KiB
Ruby

cask "docker" do
arch arm: "arm64", intel: "amd64"
on_intel do
binary "Docker.app/Contents/Resources/bin/com.docker.hyperkit",
target: "/usr/local/bin/hyperkit"
end
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 do
version "4.24.2,124339"
sha256 arm: "fec5b7f8f38b7cbec3a654b01fcc1828b4dbaa3875033adab20a88fa9ad4c7c4",
intel: "0bedaa13c4e8870b55250162def44cafba65d857c265f1f7488d8326ec386f71"
livecheck do
skip "Legacy version"
end
depends_on macos: :big_sur
end
on_monterey :or_newer do
version "4.26.1,131620"
sha256 arm: "67f026d3154dbd393ff983a904037b7f59697c75880a53bf63fa1a02fec8c8b3",
intel: "617e07f04cd8a337c189efcfc05109fc9ef83c313ea101c520593c79c36697cf"
livecheck do
url "https://desktop.docker.com/mac/main/#{arch}/appcast.xml"
strategy :sparkle
end
depends_on macos: ">= :monterey"
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-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/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