From 1a916c5e880720084740f905d8d91993ab5a444e Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Wed, 1 Nov 2023 14:57:11 +0000 Subject: [PATCH 1/3] watchtower auto-update service --- docker-compose.autoupdate.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 docker-compose.autoupdate.yml diff --git a/docker-compose.autoupdate.yml b/docker-compose.autoupdate.yml new file mode 100644 index 0000000..b0b6074 --- /dev/null +++ b/docker-compose.autoupdate.yml @@ -0,0 +1,7 @@ +version: '3.8' +services: + watchtower: + image: containrrr/watchtower + volumes: + - /var/run/docker.sock:/var/run/docker.sock + command: --interval 60 premapp premd dnsd authd controllerd From 3178b6a094c3b6797059004ce37026f7cd4883bb Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Wed, 1 Nov 2023 15:05:50 +0000 Subject: [PATCH 2/3] add auto-update to install script --- install.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index b0b48e7..a1a9a81 100644 --- a/install.sh +++ b/install.sh @@ -9,11 +9,13 @@ SCRIPT_VERSION="v0.1.0" DEFAULT_PREM_BOX_USER=premai-io DEFAULT_PREM_BOX_BRANCH=main DEFAULT_PREM_REGISTRY_BRANCH=main +DEFAULT_PREM_AUTO_UPDATE='' # empty/unset means false PREM_BOX_REPO=prem-box PREM_BOX_USER=${1:-$DEFAULT_PREM_BOX_USER} PREM_BOX_BRANCH=${2:-$DEFAULT_PREM_BOX_BRANCH} PREM_REGISTRY_BRANCH=${3:-$DEFAULT_PREM_REGISTRY_BRANCH} +PREM_AUTO_UPDATE=${4:-$DEFAULT_PREM_AUTO_UPDATE} ARCH=$(uname -m) WHO=$(whoami) @@ -29,7 +31,6 @@ PREM_REGISTRY_URL=https://raw.githubusercontent.com/premAI-io/prem-registry/$PRE SENTRY_DSN=https://75592545ad6b472e9ad7c8ff51740b73@o1068608.ingest.sentry.io/4505244431941632 PREM_APP_ID=$(cat /proc/sys/kernel/random/uuid) -PREM_AUTO_UPDATE=false ORIGINAL_HOME=$(eval echo ~$SUDO_USER) PREM_CONF_FOUND=$(find ~ -path "$ORIGINAL_HOME/prem/config") @@ -60,6 +61,7 @@ PREM_AUTO_UPDATE=$PREM_AUTO_UPDATE" >$PREM_CONF_FOUND curl --silent https://raw.githubusercontent.com/$PREM_BOX_USER/$PREM_BOX_REPO/$PREM_BOX_BRANCH/docker-compose.premg.yml -o $ORIGINAL_HOME/prem/docker-compose.premg.yml curl --silent https://raw.githubusercontent.com/$PREM_BOX_USER/$PREM_BOX_REPO/$PREM_BOX_BRANCH/docker-compose.premapp.premd.yml -o $ORIGINAL_HOME/prem/docker-compose.premapp.premd.yml curl --silent https://raw.githubusercontent.com/$PREM_BOX_USER/$PREM_BOX_REPO/$PREM_BOX_BRANCH/docker-compose.gpu.yml -o $ORIGINAL_HOME/prem/docker-compose.gpu.yml + curl --silent https://raw.githubusercontent.com/$PREM_BOX_USER/$PREM_BOX_REPO/$PREM_BOX_BRANCH/docker-compose.autoupdate.yml -o $ORIGINAL_HOME/prem/docker-compose.autoupdate.yml curl --silent https://raw.githubusercontent.com/$PREM_BOX_USER/$PREM_BOX_REPO/$PREM_BOX_BRANCH/versions.json -o $ORIGINAL_HOME/prem/versions.json } # Function to check for NVIDIA GPU @@ -309,6 +311,11 @@ export POSTGRES_DB=dnsd-db echo "" echo "🏁 Starting Prem..." +DCC="docker-compose -f $ORIGINAL_HOME/prem/docker-compose.premapp.premd.yml -f $ORIGINAL_HOME/prem/docker-compose.premg.yml" +# Check for PREM_AUTO_UPDATE and run watchtower if necessary +if test -n "$PREM_AUTO_UPDATE"; then + DCC="$DCC -f docker-compose.autoupdate.yml" +fi # Check for GPU and install drivers if necessary if has_gpu; then if ! check_nvidia_driver; then @@ -318,10 +325,10 @@ if has_gpu; then exit 0 fi echo "nvidia-smi is available. Running with gpu support..." - docker-compose -f $ORIGINAL_HOME/prem/docker-compose.premapp.premd.yml -f $ORIGINAL_HOME/prem/docker-compose.gpu.yml -f $ORIGINAL_HOME/prem/docker-compose.premg.yml up -d || exit 1 + $DCC -f $ORIGINAL_HOME/prem/docker-compose.gpu.yml up -d || exit 1 else echo "No NVIDIA GPU detected. Running without gpu support..." - docker-compose -f $ORIGINAL_HOME/prem/docker-compose.premapp.premd.yml -f $ORIGINAL_HOME/prem/docker-compose.premg.yml up -d || exit 1 + $DCC up -d || exit 1 fi # Loop to check for 'OK' from curl command with maximum 10 retries From 2eea1341dd460f7dc4366e5e52b35ff047184892 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Wed, 1 Nov 2023 15:27:57 +0000 Subject: [PATCH 3/3] fix auto-update to :latest tags --- install.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/install.sh b/install.sh index a1a9a81..b190dc3 100644 --- a/install.sh +++ b/install.sh @@ -314,6 +314,12 @@ echo "🏁 Starting Prem..." DCC="docker-compose -f $ORIGINAL_HOME/prem/docker-compose.premapp.premd.yml -f $ORIGINAL_HOME/prem/docker-compose.premg.yml" # Check for PREM_AUTO_UPDATE and run watchtower if necessary if test -n "$PREM_AUTO_UPDATE"; then + echo "Using :latest images & auto-updating" + export PREM_APP_IMAGE=ghcr.io/premai-io/prem-app:latest + export PREM_DAEMON_IMAGE=ghcr.io/premai-io/premd:latest + export PREMG_DNSD_IMAGE=ghcr.io/premai-io/dnsd:latest + export PREMG_CONTROLLERD_IMAGE=ghcr.io/premai-io/controllerd:latest + export PREMG_AUTHD_IMAGE=ghcr.io/premai-io/authd:latest DCC="$DCC -f docker-compose.autoupdate.yml" fi # Check for GPU and install drivers if necessary