diff --git a/core/Dockerfile b/core/Dockerfile index 721f440b..ca904e68 100644 --- a/core/Dockerfile +++ b/core/Dockerfile @@ -10,7 +10,7 @@ RUN --mount=type=cache,target=/root/.cache \ && apk add --virtual build-deps gcc python3-dev musl-dev postgresql-dev \ libffi-dev \ # psutil needs linux-headers to compile on musl c library. - && apk add --no-cache bash su-exec postgresql-client mysql-client curl python3 py3-pip linux-headers py-cryptography \ + && apk add --no-cache bash su-exec postgresql-client mysql-client curl python3 py3-pip linux-headers py-cryptography mariadb-connector-c \ && python3 -m pip install -U pip setuptools wheel \ && python3 -m pip install psycopg2 \ gunicorn==19.9.0 \ diff --git a/core/Dockerfile.dev b/core/Dockerfile.dev index 15e19f8b..384b1705 100644 --- a/core/Dockerfile.dev +++ b/core/Dockerfile.dev @@ -15,7 +15,7 @@ RUN --mount=type=cache,target=/root/.cache \ apk update \ && apk add --no-cache --virtual build-deps gcc python3-dev musl-dev \ postgresql-dev git libffi-dev \ - && apk add --no-cache bash su-exec postgresql-client mysql-client curl python3 py3-pip linux-headers py-cryptography \ + && apk add --no-cache bash su-exec postgresql-client mysql-client curl python3 py3-pip linux-headers py-cryptography mariadb-connector-c \ && python3 -m pip install -U psycopg2 pymysql setuptools wheel \ && python3 -m pip install \ git+https://gitlab.com/mailman/mailman@${CORE_REF} \ diff --git a/core/docker-entrypoint.sh b/core/docker-entrypoint.sh index 7c761b0c..80aa6c79 100755 --- a/core/docker-entrypoint.sh +++ b/core/docker-entrypoint.sh @@ -15,8 +15,8 @@ function wait_for_postgres () { function wait_for_mysql () { # Check if MySQL is up and accepting connections. - HOSTNAME=$(python3 -c "from urllib.parse import urlparse; o = urlparse('$DATABASE_URL'); print(o.hostname);") - until mysqladmin ping --host "$HOSTNAME" --silent; do + readarray -d' ' -t ENDPOINT <<< $(python3 -c "from urllib.parse import urlparse; o = urlparse('$DATABASE_URL'); print('%s %s' % (o.hostname, o.port if o.port else '3306'));") + until mysqladmin ping --host ${ENDPOINT[0]} --port ${ENDPOINT[1]} --silent; do >&2 echo "MySQL is unavailable - sleeping" sleep 1 done diff --git a/postorius/Dockerfile b/postorius/Dockerfile index 4bc0b2fb..408c8328 100644 --- a/postorius/Dockerfile +++ b/postorius/Dockerfile @@ -12,7 +12,7 @@ COPY docker-entrypoint.sh /usr/local/bin/ RUN --mount=type=cache,target=/root/.cache \ set -ex \ && apk add --no-cache --virtual .build-deps gcc libc-dev linux-headers \ - postgresql-dev mariadb-dev python3-dev libffi-dev openldap-dev cargo rust \ + postgresql-dev mariadb-dev mariadb-connector-c python3-dev libffi-dev openldap-dev cargo rust \ && apk add --no-cache --virtual .mailman-rundeps bash sassc \ postgresql-client mysql-client py3-mysqlclient curl mailcap gettext \ python3 py3-pip libffi libuuid pcre-dev py-cryptography \ diff --git a/postorius/Dockerfile.dev b/postorius/Dockerfile.dev index 91409bec..622ccf0f 100644 --- a/postorius/Dockerfile.dev +++ b/postorius/Dockerfile.dev @@ -16,7 +16,7 @@ ARG CLIENT_REF RUN --mount=type=cache,target=/root/.cache \ set -ex \ && apk add --no-cache --virtual .build-deps gcc libc-dev linux-headers \ - postgresql-dev mariadb-dev python3-dev libffi-dev git cargo rust \ + postgresql-dev mariadb-dev mariadb-connector-c python3-dev libffi-dev git cargo rust \ && apk add --no-cache --virtual .mailman-rundeps bash sassc \ postgresql-client mysql-client py3-mysqlclient curl mailcap \ python3 py3-pip libffi gettext py-cryptography \ diff --git a/postorius/docker-entrypoint.sh b/postorius/docker-entrypoint.sh index 26c7e381..2b8218b7 100755 --- a/postorius/docker-entrypoint.sh +++ b/postorius/docker-entrypoint.sh @@ -16,23 +16,14 @@ function wait_for_postgres () { function wait_for_mysql () { # Check if MySQL is up and accepting connections. - HOSTNAME=$(python3 <&2 echo "MySQL is unavailable - sleeping" sleep 1 done >&2 echo "MySQL is up - continuing" } - function check_or_create () { # Check if the path exists, if not, create the directory. if [[ ! -e dir ]]; then diff --git a/web/Dockerfile b/web/Dockerfile index ccfa3b2e..31d53cc8 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -12,7 +12,7 @@ COPY docker-entrypoint.sh /usr/local/bin/ RUN --mount=type=cache,target=/root/.cache \ set -ex \ && apk add --no-cache --virtual .build-deps gcc libc-dev linux-headers \ - postgresql-dev mariadb-dev python3-dev libffi-dev openldap-dev cargo rust \ + postgresql-dev mariadb-dev mariadb-connector-c python3-dev libffi-dev openldap-dev cargo rust \ && apk add --no-cache --virtual .mailman-rundeps bash sassc \ postgresql-client mysql-client py3-mysqlclient curl mailcap gettext \ python3 py3-pip xapian-core xapian-bindings-python3 libffi pcre-dev py-cryptography \ diff --git a/web/Dockerfile.dev b/web/Dockerfile.dev index 8a969e43..648c980c 100644 --- a/web/Dockerfile.dev +++ b/web/Dockerfile.dev @@ -17,7 +17,7 @@ ARG CLIENT_REF RUN --mount=type=cache,target=/root/.cache \ set -ex \ && apk add --no-cache --virtual .build-deps gcc libc-dev linux-headers git \ - postgresql-dev mariadb-dev python3-dev libffi-dev openldap-dev cargo rust \ + postgresql-dev mariadb-dev mariadb-connector-c python3-dev libffi-dev openldap-dev cargo rust \ && apk add --no-cache --virtual .mailman-rundeps bash sassc pcre-dev \ python3 py3-pip postgresql-client mysql-client py3-mysqlclient \ curl mailcap xapian-core xapian-bindings-python3 libffi gettext py-cryptography \ diff --git a/web/docker-entrypoint.sh b/web/docker-entrypoint.sh index a02691cf..a29c3962 100755 --- a/web/docker-entrypoint.sh +++ b/web/docker-entrypoint.sh @@ -16,23 +16,14 @@ function wait_for_postgres () { function wait_for_mysql () { # Check if MySQL is up and accepting connections. - HOSTNAME=$(python3 <&2 echo "MySQL is unavailable - sleeping" sleep 1 done >&2 echo "MySQL is up - continuing" } - function check_or_create () { # Check if the path exists, if not, create the directory. if [[ ! -e dir ]]; then