From 22afab1dcc37315e4c2601d7764810e189ab3f35 Mon Sep 17 00:00:00 2001 From: Dariusz Janny <janny@man.poznan.pl> Date: Wed, 3 Mar 2021 12:06:20 +0100 Subject: [PATCH] [edugain/faas#29] faas-registry updated - automating startup/setup. --- conf/etc/entrypoint | 52 ++++++++++++++++++++++++++++++++++++++++----- docker-compose.yml | 1 - 2 files changed, 47 insertions(+), 6 deletions(-) diff --git a/conf/etc/entrypoint b/conf/etc/entrypoint index 09548ef..9865284 100755 --- a/conf/etc/entrypoint +++ b/conf/etc/entrypoint @@ -36,11 +36,44 @@ sed -i 's#__FAAS_REGISTRY_DB_NAME__#'${FAAS_REGISTRY_DB_NAME}'#g' /docker-entryp sed -i 's#__FAAS_REGISTRY_DB_PASSWORD__#'${FAAS_REGISTRY_DB_PASSWORD}'#g' /docker-entrypoint-initdb.d/01-init-registry.sql.template +TIMEOUT=10 +while :; do + mysql -h ${FAAS_REGISTRY_DB_HOSTNAME} -uroot -p${MYSQL_ROOT_PASSWORD} -e "select version();" > /dev/null 2>&1 + result=$? + + if [ $result -eq 0 ] ; then + echo "[registry] DB connection for registry is ready..." + break; + else + echo "[registry] waiting for DB connection..." + fi + if [ "$TIMEOUT" -le 0 ]; then + echo "[registry] ERROR: in waiting for DB connection..." + break + fi + TIMEOUT=$((TIMEOUT - 1)) + sleep 2 +done; + +mysql -h ${FAAS_REGISTRY_DB_HOSTNAME} -uroot -p${MYSQL_ROOT_PASSWORD} -e "use ${FAAS_REGISTRY_DB_NAME};" > /dev/null 2>&1 +result=$? +if [ $result -eq 0 ] ; then + echo "[registry] DB structure created before" +else + cat /docker-entrypoint-initdb.d/01-init-registry.sql.template + mysql -h ${FAAS_REGISTRY_DB_HOSTNAME} -uroot -p${MYSQL_ROOT_PASSWORD} < /docker-entrypoint-initdb.d/01-init-registry.sql.template +fi -mysql -h ${FAAS_REGISTRY_DB_HOSTNAME} -uroot -p${MYSQL_ROOT_PASSWORD} < /docker-entrypoint-initdb.d/01-init-registry.sql.template cd /opt/rr3/application -./doctrine orm:schema-tool:create + +mysql -h ${FAAS_REGISTRY_DB_HOSTNAME} -uroot -p${MYSQL_ROOT_PASSWORD} ${FAAS_REGISTRY_DB_NAME} -e "select * from fedvalidator" > /dev/null 2>&1 +result=$? +if [ $result -eq 0 ] ; then + echo "[registry] DB table created before" +else + ./doctrine orm:schema-tool:create +fi ./doctrine orm:schema-tool:update --force ./doctrine orm:generate-proxies @@ -50,8 +83,17 @@ cd /etc/shibboleth/ cp /etc/shibboleth/sp-signing-cert.pem /etc/shibboleth/sp-encrypt-cert.pem cp /etc/shibboleth/sp-signing-key.pem /etc/shibboleth/sp-encrypt-key.pem -# init first user -cd /opt/rr3 -php index.php CLISetup submit "${FAAS_REGISTRY_RR_FIRSTUSER_USERNAME}" "${FAAS_REGISTRY_RR_FIRSTUSER_EMAIL}" "${FAAS_REGISTRY_RR_FIRSTUSER_PASSWORD}" "${FAAS_REGISTRY_RR_FIRSTUSER_FNAME}" "${FAAS_REGISTRY_RR_FIRSTUSER_SNAME}" || echo "error in creating first setup" + + +mysql -h ${FAAS_REGISTRY_DB_HOSTNAME} -uroot -p${MYSQL_ROOT_PASSWORD} ${FAAS_REGISTRY_DB_NAME} -e "select * from user where id=1" |grep "admin" > /dev/null 2>&1 +result=$? +if [ $result -eq 0 ] ; then + echo "[registry] admin user was created before..." +else + # init first user + cd /opt/rr3 + php index.php CLISetup submit "${FAAS_REGISTRY_RR_FIRSTUSER_USERNAME}" "${FAAS_REGISTRY_RR_FIRSTUSER_EMAIL}" "${FAAS_REGISTRY_RR_FIRSTUSER_PASSWORD}" "${FAAS_REGISTRY_RR_FIRSTUSER_FNAME}" "${FAAS_REGISTRY_RR_FIRSTUSER_SNAME}" || echo "error in creating first setup" +fi + exec supervisord -c /etc/supervisord.conf diff --git a/docker-compose.yml b/docker-compose.yml index ad069ff..575ecc3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,6 @@ services: - ${FAAS_DB_PORT}:3306 environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} - faas_smtp: image: ${FAAS_SMTP_REPO}/${FAAS_SMTP_NAME}:${FAAS_SMTP_VERSION} restart: always -- GitLab