From 2c09fdfbaab65aba945f1b9de58bbb5d360a4888 Mon Sep 17 00:00:00 2001 From: Asif Bacchus Date: Sat, 28 Nov 2020 03:45:43 -0700 Subject: [PATCH] set skip-name-resolve to env option, default=true --- Dockerfile | 1 + entrypoint.sh | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e6716f2..3225dbb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,6 +33,7 @@ VOLUME ["/var/lib/mysql"] ENV TZ=Etc/UTC ENV MYSQL_UID=8100 ENV MYSQL_GID=8100 +ENV MYSQL_SKIP_NAME_RESOLVE=TRUE ENV MYSQL_ROOT_PASSWORD='' ENV MYSQL_DATABASE='myData' ENV MYSQL_CHARSET='utf8mb4' diff --git a/entrypoint.sh b/entrypoint.sh index 582a95a..3bcdad1 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -19,7 +19,7 @@ testInteger () { sqlCmd='/tmp/cmd.sql' # convert env variables to uppercase for proper string comparison -SKIP_NAME_RESOLVE=$(convertCase "$SKIP_NAME_RESOLVE") +MYSQL_SKIP_NAME_RESOLVE=$(convertCase "$MYSQL_SKIP_NAME_RESOLVE") # verify environment variables have valid values if [ "$(testInteger $MYSQL_UID)" -gt 0 ]; then @@ -34,6 +34,11 @@ else printf "'%s' is not a valid value for MYSQL_GID\n" "$MYSQL_UID" exit 1 fi +if [ "$MYSQL_SKIP_NAME_RESOLVE" != "TRUE" ] && [ "$MYSQL_SKIP_NAME_RESOLVE" != "FALSE" ]; then + printf "MYSQL_SKIP_NAME_RESOLVE must be either 'TRUE' or 'FALSE'\n" + exit 1 +fi + # generate root password if not specified if [ -z "$MYSQL_ROOT_PASSWORD" ]; then MYSQL_ROOT_PASSWORD="$( head /dev/urandom | tr -dc A-Za-z0-9 | head -c32 )" @@ -45,6 +50,11 @@ sed -i "s/mysql:x:100:101/mysql:x:${MYSQL_UID}:${MYSQL_GID}/" /etc/passwd sed -i "s/mysql:x:101/mysql:x:${MYSQL_GID}/" /etc/group chown -R mysql:mysql /var/lib/mysql +# skip DNS reverse name resolution if option is set (default) +if [ "$MYSQL_SKIP_NAME_RESOLVE" = 'TRUE' ]; then + sed -i '/^[mysqld]$/a skip-name-resolve' /etc/my.cnf.d/mariadb-server.cnf +fi + # execute pre-init scripts: /docker-entrypoint-preinit.d/*.sh for f in /docker-entrypoint-preinit.d/*.sh; do if [ -s "$f" ]; then