fix: brew file conflict when installing docker plugins (#2324)

* fix: brew file conflict when installing docker plugins

* fix(just): Add brews docker bin symlint to /usr/local/bin

* fix(just): badly created docker contexts when one already exists

* fix(just): missing error handling on docker root context creation
This commit is contained in:
Zeglius 2025-02-28 21:54:43 +01:00 committed by GitHub
parent 0efa97b05b
commit 5f387f78b2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -185,21 +185,28 @@ install-docker:
exit 1
}
mkdir -p ~/.local/bin
brew install docker docker-buildx docker-compose
brew install docker
# Handle plugins installation separately to handle file config collision
brew install docker-buildx docker-compose || {
brew link --overwrite docker-buildx docker-compose
}
[[ -e ~/.local/bin/docker ]] && {
gum confirm "There is a file in ~/.local/bin/docker. Do you wish to override it?" || exit 0
}
ln -sf $(which docker) ~/.local/bin/docker
[[ -e /usr/local/bin/docker ]] && {
gum confirm "There is a file in /usr/local/bin/docker. Do you wish to override it?" || exit 0
}
sudo ln -sf $(which docker) /usr/local/bin/docker
# Enable podman sockets
systemctl --user enable --now podman.socket
sudo systemctl enable --now podman.socket
# Add podman sockets to docker contexts
docker context use $(
docker context create podman --docker "host=unix://$(podman system info --format '{{{{.Host.RemoteSocket.Path}}')"
)
sudo docker context use $(
sudo docker context create podman-rootful --docker "host=unix://$(sudo podman system info --format '{{{{.Host.RemoteSocket.Path}}')"
)
ctx=$(docker context create podman --docker "host=unix://$(podman system info --format '{{{{.Host.RemoteSocket.Path}}')") && \
docker context use $ctx && unset -v ctx || true
ctx=$(sudo docker context create podman-rootful --docker "host=unix://$(sudo podman system info --format '{{{{.Host.RemoteSocket.Path}}')") && \
sudo docker context use $ctx && unset -v ctx || true
# Create fedora distrobox if it doesn't exist
[private]