# source: https://github.com/docker-library/wordpress/blob/59f3b513af128d12da1403721e4f9be8d882ec54/php7.2/apache/Dockerfile
FROM php:7.2-apache

# install the PHP extensions we need
RUN set -ex; \
	\
	savedAptMark="$(apt-mark showmanual)"; \
	\
	apt-get update; \
	apt-get install -y --no-install-recommends \
		libjpeg-dev \
		libpng-dev \
	; \
	\
	docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \
	docker-php-ext-install gd mysqli opcache; \
	\
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
	apt-mark auto '.*' > /dev/null; \
	apt-mark manual $savedAptMark; \
	ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
		| awk '/=>/ { print $3 }' \
		| sort -u \
		| xargs -r dpkg-query -S \
		| cut -d: -f1 \
		| sort -u \
		| xargs -rt apt-mark manual; \
	\
	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
	rm -rf /var/lib/apt/lists/*

# set recommended PHP.ini settings
# see https://secure.php.net/manual/en/opcache.installation.php
RUN { \
		echo 'opcache.memory_consumption=128'; \
		echo 'opcache.interned_strings_buffer=8'; \
		echo 'opcache.max_accelerated_files=4000'; \
		echo 'opcache.revalidate_freq=2'; \
		echo 'opcache.fast_shutdown=1'; \
		echo 'opcache.enable_cli=1'; \
	} > /usr/local/etc/php/conf.d/opcache-recommended.ini

RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
	    libmemcached-dev \
	    libicu-dev \
        libpq-dev \
        gnupg \
        lsb-release \
	    curl \
    && docker-php-ext-install pdo_mysql \
    && docker-php-ext-install intl \
    && curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
    && mkdir -p /usr/src/php/ext/memcached \
    && tar -C /usr/src/php/ext/memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
    && docker-php-ext-configure memcached \
    && docker-php-ext-install memcached \
    && rm /tmp/memcached.tar.gz

# Install memcache extension
RUN set -x \
    && apt-get update && apt-get install -y --no-install-recommends unzip libssl-dev libpcre3 libpcre3-dev \
    && cd /tmp \
    && curl -sSL -o php7.zip https://github.com/websupport-sk/pecl-memcache/archive/php7.zip \
    && unzip php7 \
    && cd pecl-memcache-php7 \
    && /usr/local/bin/phpize \
    && ./configure --with-php-config=/usr/local/bin/php-config \
    && make \
    && make install \
    && echo "extension=memcache.so" > /usr/local/etc/php/conf.d/ext-memcache.ini \
    && rm -rf /tmp/pecl-memcache-php7 php7.zip

# install gcsfuse
RUN export GCSFUSE_REPO=gcsfuse-`lsb_release -c -s` \
	&& echo "deb http://packages.cloud.google.com/apt $GCSFUSE_REPO main" | tee /etc/apt/sources.list.d/gcsfuse.list \
	&& curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \
	&& apt-get update \
	&& apt-get install -y gcsfuse

RUN a2enmod rewrite expires
RUN a2enmod ssl

# emiatt nem használhatjuk az eredeti image-t :/
# VOLUME /var/www/html

# FORRÁS (-wp-config.php) felmásolása
COPY --chown=www-data:www-data ./html /var/www/html

# SSL beállítás
COPY --chown=www-data:www-data ./ssl/* /etc/welovebudapest/
COPY --chown=www-data:www-data ./apache/000-default*.conf /etc/apache2/sites-available/
RUN chmod 400 /etc/welovebudapest/wlb.key \
    && chmod 444 /etc/welovebudapest/wlb-bundle.crt \
    && a2ensite 000-default-ssl \
	&& a2ensite 000-default
EXPOSE 443

COPY --chown=www-data:www-data ./apache/.htpasswd /var/www/html/
COPY --chown=www-data:www-data ./config/wp-config.php /var/www/html/
# COPY ./bin/*.sh /usr/local/bin/
RUN mkdir -p /var/www/html/wp-content/uploads \
    && mkdir -p /var/www/html/wp-content/archive \
    && mkdir -p /var/www/html/wp-content/cache \
    && mkdir -p /var/www/html/wp-content/widget-cache \
    && chown www-data:www-data /var/www/html/wp-content/uploads \
    && chown www-data:www-data /var/www/html/wp-content/archive \
    && chown www-data:www-data /var/www/html/wp-content/cache \
    && chown www-data:www-data /var/www/html/wp-content/widget-cache \
    && chmod a+x /usr/local/bin/*

RUN echo 'log_errors = On' > /usr/local/etc/php/php.ini \
    && echo 'error_reporting = E_ALL' >> /usr/local/etc/php/php.ini \
    && echo 'error_log = /dev/stderr' >> /usr/local/etc/php/php.ini \
    && echo 'display_errors = Off' >> /usr/local/etc/php/php.ini \
    && echo 'max_execution_time = 30' >> /usr/local/etc/php/php.ini \
	&& echo 'upload_max_filesize = 10M' >> /usr/local/etc/php/php.ini \
	&& echo 'post_max_size = 10M' >> /usr/local/etc/php/php.ini

ENV GODEBUG="http2client=0"

RUN apt-get update && apt-get install -y vim

ENTRYPOINT ["apache2-foreground"]