#!/bin/bash ################################################################################ DIVE_VER="0.10.0" GRYPE_VER="0.35.0" HADOLINT_VER="2.10.0" TRIVY_VER="0.27.1" ################################################################################ main() { installDocker installDive installGrype installHadolint installTrivy } installDocker() { if [[ -f "/etc/fedora-release" ]] ; then installDockerFedora else installDockerCentOS fi systemctl start docker } installDockerFedora() { dnf install -y dnf-plugins-core dnf config-manager --add-repo "https://download.docker.com/linux/fedora/docker-ce.repo" dnf install -y docker-ce docker-ce-cli containerd.io } installDockerCentOS() { yum install -y yum-utils yum-config-manager --add-repo "https://download.docker.com/linux/centos/docker-ce.repo" yum install -y docker-ce docker-ce-cli containerd.io configureKernel } configureKernel() { if ! grep -q 'net.ipv4.ip_forward' /etc/sysctl.conf ; then echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf sysctl -p &> /dev/null fi } installDive() { installPackage "https://github.com/wagoodman/dive/releases/download/v${DIVE_VER}/dive_${DIVE_VER}_linux_amd64.rpm" } installGrype() { installPackage "https://github.com/anchore/grype/releases/download/v${GRYPE_VER}/grype_${GRYPE_VER}_linux_amd64.rpm" } installHadolint() { curl -# -L -o "hadolint" "https://github.com/hadolint/hadolint/releases/download/v${HADOLINT_VER}/hadolint-Linux-x86_64" chmod +x hadolint mv hadolint /usr/bin/hadolint } installTrivy() { installPackage "https://github.com/aquasecurity/trivy/releases/download/v${TRIVY_VER}/trivy_${TRIVY_VER}_Linux-64bit.rpm" } installPackage() { local url="$1" local rpm_file=$(basename "$url") curl -# -L -o "$rpm_file" "$url" rpm -i "$rpm_file" rm -f "$rpm_file" mv /usr/local/bin/* /usr/bin/ } ################################################################################ main "$@"