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:
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user