forked from aws/aws-sam-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup_finch.sh
More file actions
executable file
·60 lines (50 loc) · 2.11 KB
/
setup_finch.sh
File metadata and controls
executable file
·60 lines (50 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash
# Setup Finch container runtime on Ubuntu
# This script stops Docker, installs Finch, and configures buildkit sockets.
set -e
echo "=== Stopping Docker ==="
sudo systemctl stop docker || true
sudo systemctl stop docker.socket || true
sudo systemctl disable docker || true
sudo systemctl disable docker.socket || true
echo "=== Removing Docker packages to avoid conflicts ==="
sudo apt-get remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin || true
sudo apt-get autoremove -y || true
echo "=== Installing Finch ==="
for i in {1..3}; do
if curl -fsSL https://artifact.runfinch.com/deb/GPG_KEY.pub | sudo gpg --dearmor -o /usr/share/keyrings/runfinch-finch-archive-keyring.gpg; then
break
fi
sleep 10
done
echo 'deb [signed-by=/usr/share/keyrings/runfinch-finch-archive-keyring.gpg arch=amd64] https://artifact.runfinch.com/deb noble main' | sudo tee /etc/apt/sources.list.d/runfinch-finch.list
sudo apt update
sudo apt install -y runfinch-finch
echo "=== Starting Finch services ==="
sudo systemctl enable --now finch
sudo systemctl enable --now finch-buildkit
sleep 3
sudo chmod 666 /var/run/finch.sock
echo "=== Configuring finch for non-root access ==="
sudo chmod +s /usr/libexec/finch/nerdctl
sudo chmod +s /usr/bin/finch
echo "=== Waiting for Finch to be ready ==="
for i in {1..12}; do
if sudo finch info >/dev/null 2>&1; then
break
fi
sleep 5
done
echo "=== Configuring buildkit sockets ==="
sudo mkdir -p /run/buildkit-finch /run/buildkit-default /run/buildkit
sudo ln -sf /var/lib/finch/buildkit/buildkitd.sock /run/buildkit-finch/buildkitd.sock
sudo ln -sf /var/lib/finch/buildkit/buildkitd.sock /run/buildkit-default/buildkitd.sock
sudo ln -sf /var/lib/finch/buildkit/buildkitd.sock /run/buildkit/buildkitd.sock
sudo chmod 666 /var/lib/finch/buildkit/buildkitd.sock
sudo chmod 666 /run/buildkit-*/buildkitd.sock
echo "=== Installing QEMU for multi-arch support ==="
sudo finch run --privileged --rm tonistiigi/binfmt:master --install all
echo "=== Finch setup complete ==="
sudo finch info
# Run finch without sudo here to confirm that it's not required
finch version