From e5d6f424334c4e727593d703f8c23df2b80ba148 Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Thu, 16 Dec 2021 17:20:10 +0100 Subject: [PATCH] [WIFI-6170] Add OpenWifi Docker Compose deployment with PostgreSQL (#30) * Add wait-for-postgres.sh wrapper script Signed-off-by: Johann Hoffmann * Copy wait-for-postgres.sh into Docker image Signed-off-by: Johann Hoffmann --- Dockerfile | 3 ++- wait-for-postgres.sh | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100755 wait-for-postgres.sh diff --git a/Dockerfile b/Dockerfile index cc46c17..4d5aa9f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -76,7 +76,7 @@ RUN addgroup -S "$OWSEC_USER" && \ RUN mkdir /openwifi RUN mkdir -p "$OWSEC_ROOT" "$OWSEC_CONFIG" && \ chown "$OWSEC_USER": "$OWSEC_ROOT" "$OWSEC_CONFIG" -RUN apk add --update --no-cache librdkafka mariadb-connector-c libpq unixodbc su-exec gettext ca-certificates libcurl curl-dev bash jq curl +RUN apk add --update --no-cache librdkafka mariadb-connector-c libpq unixodbc su-exec gettext ca-certificates libcurl curl-dev bash jq curl postgresql-client COPY --from=builder /owsec/cmake-build/owsec /openwifi/owsec COPY --from=builder /cppkafka/cmake-build/src/lib/* /lib/ COPY --from=builder /poco/cmake-build/lib/* /lib/ @@ -88,6 +88,7 @@ COPY owsec.properties.tmpl / COPY wwwassets /dist/wwwassets COPY templates /dist/templates COPY docker-entrypoint.sh / +COPY wait-for-postgres.sh / RUN wget https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentral-deploy/main/docker-compose/certs/restapi-ca.pem \ -O /usr/local/share/ca-certificates/restapi-ca-selfsigned.pem diff --git a/wait-for-postgres.sh b/wait-for-postgres.sh new file mode 100755 index 0000000..9957852 --- /dev/null +++ b/wait-for-postgres.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# wait-for-postgres.sh + +set -e + +host="$1" +shift + +export PGUSER=$(grep 'storage.type.postgresql.username' $OWSEC_CONFIG/owsec.properties | awk -F '= ' '{print $2}') +export PGPASSWORD=$(grep 'storage.type.postgresql.password' $OWSEC_CONFIG/owsec.properties | awk -F '= ' '{print $2}') + +until psql -h "$host" -c '\q'; do + >&2 echo "Postgres is unavailable - sleeping" + sleep 1 +done + +>&2 echo "Postgres is up - executing command" + +if [ "$1" = '/openwifi/owsec' -a "$(id -u)" = '0' ]; then + if [ "$RUN_CHOWN" = 'true' ]; then + chown -R "$OWSEC_USER": "$OWSEC_ROOT" "$OWSEC_CONFIG" + fi + exec su-exec "$OWSEC_USER" "$@" +fi + +exec "$@"