From d416d2e56b3189bde19fa5f3f6b13f51dca39617 Mon Sep 17 00:00:00 2001 From: t3chn0m4g3 Date: Fri, 6 Dec 2024 09:55:31 +0100 Subject: [PATCH] tweaking / improving: - add glutton to builder - reduce parallel builds to 2 - require root for tc - add docker logins --- docker/_builder/builder.sh | 20 +++++++++++++++----- docker/_builder/docker-compose.yml | 14 +++++++------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/docker/_builder/builder.sh b/docker/_builder/builder.sh index d18e3fad..b8e91a00 100755 --- a/docker/_builder/builder.sh +++ b/docker/_builder/builder.sh @@ -1,5 +1,13 @@ #!/usr/bin/env bash +# Got root? +myWHOAMI=$(whoami) +if [ "$myWHOAMI" != "root" ] + then + echo "Need to run as root ..." + exit +fi + # ANSI color codes for green (OK) and red (FAIL) GREEN='\033[0;32m' RED='\033[0;31m' @@ -8,7 +16,7 @@ NC='\033[0m' # No Color # Default settings PUSH_IMAGES=false NO_CACHE=false -PARALLELBUILDS=8 +PARALLELBUILDS=2 UPLOAD_BANDWIDTH=40mbit # Set this to max 90% of available upload bandwidth INTERFACE=$(/sbin/ip address show | /usr/bin/awk '/inet.*brd/{ print $NF; exit }') @@ -26,6 +34,8 @@ while getopts ":pnh" opt; do case ${opt} in p ) PUSH_IMAGES=true + docker login + docker login ghcr.io ;; n ) NO_CACHE=true @@ -43,7 +53,7 @@ done # Function to apply upload bandwidth limit using tc apply_bandwidth_limit() { echo -n "Applying upload bandwidth limit of $UPLOAD_BANDWIDTH on interface $INTERFACE..." - if sudo tc qdisc add dev $INTERFACE root tbf rate $UPLOAD_BANDWIDTH burst 32kbit latency 400ms >/dev/null 2>&1; then + if tc qdisc add dev $INTERFACE root tbf rate $UPLOAD_BANDWIDTH burst 32kbit latency 400ms >/dev/null 2>&1; then echo -e " [${GREEN}OK${NC}]" else echo -e " [${RED}FAIL${NC}]" @@ -51,7 +61,7 @@ apply_bandwidth_limit() { # Try to reapply the limit echo -n "Reapplying upload bandwidth limit of $UPLOAD_BANDWIDTH on interface $INTERFACE..." - if sudo tc qdisc add dev $INTERFACE root tbf rate $UPLOAD_BANDWIDTH burst 32kbit latency 400ms >/dev/null 2>&1; then + if tc qdisc add dev $INTERFACE root tbf rate $UPLOAD_BANDWIDTH burst 32kbit latency 400ms >/dev/null 2>&1; then echo -e " [${GREEN}OK${NC}]" else echo -e " [${RED}FAIL${NC}]" @@ -64,14 +74,14 @@ apply_bandwidth_limit() { # Function to check if the bandwidth limit is set is_bandwidth_limit_set() { - sudo tc qdisc show dev $INTERFACE | grep -q 'tbf' + tc qdisc show dev $INTERFACE | grep -q 'tbf' } # Function to remove the bandwidth limit using tc if it is set remove_bandwidth_limit() { if is_bandwidth_limit_set; then echo -n "Removing upload bandwidth limit on interface $INTERFACE..." - if sudo tc qdisc del dev $INTERFACE root; then + if tc qdisc del dev $INTERFACE root; then echo -e " [${GREEN}OK${NC}]" else echo -e " [${RED}FAIL${NC}]" diff --git a/docker/_builder/docker-compose.yml b/docker/_builder/docker-compose.yml index 8612cc39..1e49a84f 100644 --- a/docker/_builder/docker-compose.yml +++ b/docker/_builder/docker-compose.yml @@ -127,13 +127,13 @@ services: <<: *common-build # Glutton -# glutton: -# image: ${TPOT_DOCKER_REPO}/glutton:${TPOT_VERSION} -## build: -# tags: -# - ${TPOT_GHCR_REPO}/glutton:${TPOT_VERSION} -# context: ../glutton/ -# <<: *common-build + glutton: + image: ${TPOT_DOCKER_REPO}/glutton:${TPOT_VERSION} + build: + tags: + - ${TPOT_GHCR_REPO}/glutton:${TPOT_VERSION} + context: ../glutton/ + <<: *common-build # Go-pot go-pot: