###
# Copyright (c) 2017 Eclipse Foundation and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available
# at http://eclipse.org/legal/epl-2.0
###

FROM ubuntu:12.04

# Install dependencies
RUN sed -i 's/archive/old-releases/' /etc/apt/sources.list && \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        mysql-client \
        curl \
        libmemcached-dev \
        libz-dev \
        libpq-dev \
        libjpeg-dev \
        libpng12-dev \
        libfreetype6-dev \
        libssl-dev \
        libmcrypt-dev \
        apache2 \
        php5 \
        php5-cli \
        openssh-client \
        unzip \
        libapache2-mod-php5 \
        php5-mysql \
        php5-pgsql \
        php5-gd \
        php-pear \
        php5-json \
        build-essential \
        php5-dev \
        libpcre3-dev \
        php5-ldap \
        php5-curl \
        git \
        php5-mcrypt \
        php5-xdebug \
    && pecl install oauth-1.2.3 \
        && echo "extension=oauth.so" >> /etc/php5/apache2/conf.d/oauth.ini \
    && version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
        && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
        && tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
        && mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
        && printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > /etc/php5/cli/conf.d/blackfire.ini \
        && rm /tmp/blackfire-probe.tar.gz \
    && pecl install uploadprogress-1.0.1 \
        && echo "extension=uploadprogress.so" >> /etc/php5/apache2/conf.d/uploadprogress.ini \
    && pecl install apcu-4.0.11 \
        && echo extension=apcu.so > /etc/php5/apache2/conf.d/apcu.ini \
    && DEBIAN_FRONTEND=noninteractive apt-get -y autoclean && apt-get -y autoremove \
    && a2enmod alias authz_host deflate dir expires headers mime php5 rewrite ssl setenvif

ENV COMPOSER_HOME /root/composer
ENV COMPOSER_VERSION master

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
    && composer global require drush/drush:7.* \
    && ln -sf $COMPOSER_HOME/vendor/bin/drush.php /usr/local/bin/drush \
    && drush --version

# Allow NameVirtualHost *:443 with apache 2.2
COPY ./php5.3/ports.conf /etc/apache2/

# Copy webdev php.ini file for development
COPY ./php5.3/php.ini /etc/php5/apache2/

COPY ./php5.3/a2ensites.sh /a2ensites.sh
ADD ./php5.3/sites-available /etc/apache2/sites-available/

# Update document root to match php5.5 and php5.6
RUN sed -ri -e 's!/var/www!/var/www/html!g' /etc/apache2/sites-available/default*

# Setup web root
WORKDIR /var/www/html

RUN curl -fSL "https://gitlab.eclipse.org/eclipsefdn/it/webdev/eclipsefdn-home-data/-/archive/v1.0.1/eclipsefdn-home-data-v1.0.1.tar.gz" -o /tmp/eclipsefdn-home-data.tar.gz  \
    && mkdir -p /home/data \
	&& tar -xf /tmp/eclipsefdn-home-data.tar.gz -C /home/data --strip-components=1 \
    && curl -fSL "https://git.eclipse.org/c/www.eclipse.org/eclipse.org-common.git/snapshot/eclipse.org-common-e4ca75a6a8c0dbb0e984d7de56de66472d3650c3.tar.gz" -o /tmp/eclipse.org-common.tar.gz \
    && tar -xf /tmp/eclipse.org-common.tar.gz -C /home/data/httpd/eclipse.org-common --strip-components=1 \
    && rm /tmp/eclipse.org-common.tar.gz /tmp/eclipsefdn-home-data.tar.gz \
    && mkdir -p /localsite/babel.eclipse.org/html \
    && mkdir -p /localsite/eclipse.org-downloads-packages \
    && mkdir -p /localsite/drupaltmp/blogs \
    && mkdir -p /localsite/drupaltmp/api \
    && mkdir -p /localsite/drupaltmp/accounts \
    && mkdir -p /localsite/api-private \
    && mkdir -p /localsite/drupaltmp/marketplace \
    && mkdir -p /localsite/drupaltmp/newsroom \
    && mkdir -p /localsite/drupaltmp/projects \
    && mkdir -p /localsite/drupaltmp/eclipsecon \
    && mkdir -p /localsite/blogs.eclipse.org-private \
    && mkdir -p /localsite/blogs-private \
    && mkdir -p /home/devops/build \
    && chown -R www-data:www-data /var/www/html \
    && chown -R www-data:www-data /localsite \
    && chown -R www-data:www-data /home \
    && a2dissite default-ssl && a2dissite default \
    && /a2ensites.sh && rm /a2ensites.sh \
    && /etc/init.d/apache2 reload

COPY ./php5.3/docker-php-entrypoint /usr/local/bin/
COPY ./php5.3/apache2-foreground /usr/local/bin/
ADD ./configs /home/devops/php/configs/

RUN mkdir /root/.ssh/ \
  && touch /root/.ssh/known_hosts \
  && ssh-keyscan gitlab.eclipse.org >> /root/.ssh/known_hosts \
  && ssh-keyscan -p 29418 git.eclipse.org >> /root/.ssh/known_hosts

EXPOSE 80

ENTRYPOINT ["docker-php-entrypoint"]
CMD ["apache2-foreground"]