Added setup-build-host.sh
This commit is contained in:
@@ -59,6 +59,8 @@ Prerequisites
|
|||||||
make release
|
make release
|
||||||
```
|
```
|
||||||
|
|
||||||
|
(You can run `devtools/setup-bulid-host.sh` if you have spin up a new VM and want to install build dependency automatically.)
|
||||||
|
|
||||||
### Common issues
|
### Common issues
|
||||||
If you have encounter this error during build
|
If you have encounter this error during build
|
||||||
```
|
```
|
||||||
|
|||||||
73
devtools/setup-bulid-host.sh
Executable file
73
devtools/setup-bulid-host.sh
Executable file
@@ -0,0 +1,73 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
|
echo "Run as root, e.g. sudo $0" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
. /etc/os-release
|
||||||
|
|
||||||
|
if [ "${ID:-}" != "debian" ]; then
|
||||||
|
echo "This script is intended for Debian. Detected ID=${ID:-unknown}" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "==> Removing conflicting Docker packages, if present"
|
||||||
|
apt-get remove -y \
|
||||||
|
docker.io \
|
||||||
|
docker-compose \
|
||||||
|
docker-doc \
|
||||||
|
podman-docker \
|
||||||
|
containerd \
|
||||||
|
runc || true
|
||||||
|
|
||||||
|
echo "==> Installing minimal repo setup tools"
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
ca-certificates \
|
||||||
|
curl
|
||||||
|
|
||||||
|
echo "==> Adding Docker official APT repo"
|
||||||
|
install -m 0755 -d /etc/apt/keyrings
|
||||||
|
|
||||||
|
curl -fsSL https://download.docker.com/linux/debian/gpg \
|
||||||
|
-o /etc/apt/keyrings/docker.asc
|
||||||
|
|
||||||
|
chmod a+r /etc/apt/keyrings/docker.asc
|
||||||
|
|
||||||
|
cat > /etc/apt/sources.list.d/docker.sources <<EOF
|
||||||
|
Types: deb
|
||||||
|
URIs: https://download.docker.com/linux/debian
|
||||||
|
Suites: ${VERSION_CODENAME}
|
||||||
|
Components: stable
|
||||||
|
Architectures: $(dpkg --print-architecture)
|
||||||
|
Signed-By: /etc/apt/keyrings/docker.asc
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "==> Installing build/test packages"
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
docker-ce \
|
||||||
|
docker-buildx-plugin \
|
||||||
|
qemu-user-static \
|
||||||
|
binfmt-support \
|
||||||
|
make
|
||||||
|
|
||||||
|
echo "==> Enabling Docker"
|
||||||
|
systemctl enable --now docker
|
||||||
|
|
||||||
|
echo "==> Registering binfmt handlers"
|
||||||
|
systemctl restart binfmt-support || true
|
||||||
|
|
||||||
|
echo "==> Docker version"
|
||||||
|
docker --version
|
||||||
|
|
||||||
|
echo "==> Buildx version"
|
||||||
|
docker buildx version || true
|
||||||
|
|
||||||
|
echo "==> Done"
|
||||||
|
echo
|
||||||
|
echo "Optional: allow your normal user to run docker without sudo:"
|
||||||
|
echo " sudo usermod -aG docker \$USER"
|
||||||
|
echo "Then log out and back in."
|
||||||
Reference in New Issue
Block a user