Fix MySQL compatibility in the docker images. (#140)

* Fix MySQL compatibility in the docker images.

* Test the containers with MySQL containers too!
This commit is contained in:
Abhilash Raj
2017-09-30 20:38:33 -07:00
committed by GitHub
parent 035e694152
commit afb8f09eff
7 changed files with 137 additions and 19 deletions

View File

@@ -7,10 +7,12 @@ COPY docker-entrypoint.sh /usr/local/bin/
#Install all required packages, add user for executing mailman and set execution rights for startup script
RUN apk update \
&& apk add --virtual build-deps gcc python3-dev musl-dev \
&& apk add postgresql-dev bash su-exec postgresql-client \
&& pip install psycopg2 mailman==3.1.0 mailman-hyperkitty==1.1.0 \
&& pip install pymysql \
&& apk add --virtual build-deps gcc python3-dev musl-dev postgresql-dev \
&& apk add bash su-exec postgresql-client mysql-client \
&& pip install psycopg2 \
mailman==3.1.0 \
mailman-hyperkitty==1.1.0 \
pymysql \
&& apk del build-deps \
&& adduser -S mailman

View File

@@ -22,6 +22,16 @@ function wait_for_postgres () {
>&2 echo "Postgres is up - continuing"
}
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
>&2 echo "MySQL is unavailable - sleeping"
sleep 1
done
>&2 echo "MySQL is up - continuing"
}
# Empty the config file.
echo "# This file is autogenerated at container startup." > /etc/mailman.cfg
@@ -76,6 +86,9 @@ fi
if [[ "$DATABASE_TYPE" = 'postgres' ]]
then
wait_for_postgres
elif [[ "$DATABASE_TYPE" = 'mysql' ]]
then
wait_for_mysql
fi
# Generate a basic mailman.cfg.