From ad7330ab998276aeed296286d74eb891148008ef Mon Sep 17 00:00:00 2001 From: Arjan H Date: Thu, 13 Oct 2022 21:29:21 +0200 Subject: [PATCH] Do not restart control container while it is still building (#60) --- control.sh | 2 +- install | 24 +++++++++++++++++------- utils.sh | 8 ++++++-- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/control.sh b/control.sh index 3ba43d0..d6685b5 100755 --- a/control.sh +++ b/control.sh @@ -94,7 +94,7 @@ main() { get_fqdn - docker ps >/dev/null || install_docker + docker ps &>/dev/null || install_docker install_docker_compose [ -e /etc/nginx/ssl/labca_cert.pem ] || selfsigned_cert diff --git a/install b/install index 866d5d2..181adc0 100755 --- a/install +++ b/install @@ -771,10 +771,12 @@ startup() { msg_info "$msg (this will take a while!!)" docker-compose pull -q &>>$installLog + cnt=$(count $PS_CONTROL) docker-compose stop boulder bmysql labca nginx &>>$installLog || true for ct in boulder_bhsm_1 boulder_bredis_1 boulder_bredis_2 boulder_bredis_3 boulder_bredis_4 boulder_bredis_5 boulder_bredis_6; do [ -z "$(docker ps | grep $ct)" ] || docker stop $ct &>>$installLog done + wait_down $PS_NGINX &>>$installLog || true wait_down $PS_MYSQL &>>$installLog || true wait_down $PS_LABCA &>>$installLog || true wait_down $PS_BOULDER &>>$installLog || true @@ -782,20 +784,28 @@ startup() { [ -z "$(docker ps -a | grep -e "$ct\$")" ] || docker rm -f $ct &>>$installLog done - service labca stop &>>$installLog || true - update-rc.d labca disable &>>$installLog || true - [ -e "/etc/init.d/labca" ] && rm /etc/init.d/labca || true + local rc=0 + service labca status &> /dev/null || rc=$? + if [ $rc -eq 0 ]; then + service labca stop &>>$installLog || true + update-rc.d labca disable &>>$installLog || true + [ -e "/etc/init.d/labca" ] && rm /etc/init.d/labca || true + fi - COMPOSE_HTTP_TIMEOUT=120 docker-compose up -d &>>$installLog + [ -d /home/labca/control_logs ] || mkdir -p /home/labca/control_logs + COMPOSE_HTTP_TIMEOUT=180 docker-compose up -d &>>$installLog + + wait_up $PS_NGINX &>>$installLog || true wait_up $PS_MYSQL &>>$installLog || true wait_up $PS_LABCA &>>$installLog || true - wait_up $PS_SERVICE &>>$installLog || true + wait_up $PS_CONTROL &>>$installLog || true docker exec -i boulder-bmysql-1 mysql_upgrade &>>$installLog [ -f "$boulderLabCADir/setup_complete" ] && wait_up $PS_BOULDER $PS_BOULDER_COUNT &>>$installLog || /bin/true - [ -d /home/labca/control_logs ] || mkdir -p /home/labca/control_logs - COMPOSE_HTTP_TIMEOUT=120 docker-compose restart control &>>$installLog + if [ $cnt -gt 0 ]; then + COMPOSE_HTTP_TIMEOUT=180 docker-compose restart control &>>$installLog + fi msg_ok "$msg" } diff --git a/utils.sh b/utils.sh index 0e770ac..80ef1b2 100644 --- a/utils.sh +++ b/utils.sh @@ -6,12 +6,13 @@ export PS_LABCA="bin/labca-gui" export PS_BOULDER="bin/boulder" export PS_BOULDER_COUNT=13 export PS_MYSQL="mysqld" -export PS_SERVICE="tcpserver" +export PS_CONTROL="tcpserver" +export PS_NGINX="nginx:" LOOPCOUNT=120 count() { - local pattern="${1/___/ }" # escape spaces, e.g. PS_SERVICE="sudo___tcpserver" + local pattern="${1/___/ }" # escape spaces, e.g. PS_CONTROL="sudo___tcpserver" local prefix="" case $pattern in @@ -24,6 +25,9 @@ count() { $PS_MYSQL) prefix="docker exec $(docker ps --format "{{.Names}}" | grep -- -bmysql-) " ;; + $PS_CONTROL) + prefix="docker exec $(docker ps --format "{{.Names}}" | grep -- -control-) " + ;; *) ;; esac