# Based on https://github.com/mbovel/docker-wordpress-autoinstall/blob/master/Dockerfile

FROM php:7.0-fpm

RUN apt-get update \
 && apt-get install -y libpng12-dev libjpeg-dev less \
 && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
 && docker-php-ext-install gd mysqli opcache

RUN curl -o /usr/local/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \
  && chmod +x /usr/local/bin/wp

# Install dockerize (https://github.com/jwilder/dockerize)
ENV DOCKERIZE_RELEASE v0.2.0/dockerize-linux-amd64-v0.2.0.tar.gz
RUN curl -sL https://github.com/jwilder/dockerize/releases/download/${DOCKERIZE_RELEASE} \
  | tar -C /usr/bin -xzvf -

# Clean up
RUN apt-get clean \
 && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# Create a directory for the WordPress installation
RUN mkdir /wp
WORKDIR /wp
ADD ./wp-content /wp/wp-content

RUN useradd -d /wp -s /bin/bash wp \
 && chown -R wp .
USER wp

ENV WORDPRESS_VERSION 4.6.1

RUN wp core download --version=${WORDPRESS_VERSION} \
 && wp core verify-checksums --version=${WORDPRESS_VERSION}

EXPOSE 8080

RUN if [ ! -f wp-config.php ]; then wp core config \
    --dbhost=db:3306 \
    --dbuser=wp \
    --dbpass=wp \
    --dbname=wp \
    --skip-check \
    ;fi

CMD dockerize -wait tcp://${MYSQL_HOST:-db}:${MYSQL_PORT:-3306} \
 && wp core install \
    --url=${WORDPRESS_URL:-localhost} \
    --title=${WORDPRESS_TITLE:-'WordPress site'} \
    --admin_user=${WORDPRESS_ADMIN_USER:-admin} \
    --admin_password=${WORDPRESS_ADMIN_PASSWORD:-admin} \
    --admin_email=${WORDPRESS_ADMIN_MAIL:-admin@example.com} \
 && wp option update permalink_structure '/%postname%/' \
 && wp plugin install rest-api --activate \
 && wp plugin activate svg \
 && wp plugin activate advanced-custom-fields-pro \
 && wp plugin activate customtypes \
 && wp server --host=0.0.0.0:8080
