# Dockerfile

FROM 086679231553.dkr.ecr.us-east-1.amazonaws.com/docker-parent-images:centos7

# Install git, vim, set timezone
RUN yum -y update && yum clean all
RUN yum -y install epel-release tar && yum clean all
RUN yum -y install git vim && yum clean all
RUN echo "America/New_York" > /etc/timezone

# Install Remi Collet's repo for CentOS 7
RUN yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

# Install PHP and Percona (MySQL) client stuff
RUN yum -y install --enablerepo=remi,remi-php56 \
  php \
  php-bcmath \
  php-cli \
  php-dba \
  php-devel \
  php-gd \
  php-gmp \
  php-mbstring \
  php-mcrypt \
  php-mysql \
  php-mysqlnd \
  php-odbc \
  php-opcache \
  php-pdo \
  php-pear \
  php-pecl-imagick \
  php-pecl-apcu \
  php-pecl-memcache \
  php-pecl-memcached \
  php-pecl-redis \
  php-pecl-uploadprogress \
  php-pecl-yaml \
  php-pgsql \
  php-soap \
  php-xml \
  && yum clean all

# Install snowflake-odbc
RUN yum -y install \
  libiodbc \
  unixODBC.x86_64 \
  unixODBC-devel \
  && yum clean all

RUN echo "[orchard-snowflake]" >  /etc/yum.repos.d/orchard-snowflake.repo && \
   echo "name=orchard-snowflake" >> /etc/yum.repos.d/orchard-snowflake.repo && \
   echo "baseurl=https://packagecloud.io/orchardit/snowflake/el/7/\$basearch/" >> /etc/yum.repos.d/orchard-snowflake.repo && \
   echo "enabled=1" >> /etc/yum.repos.d/orchard-snowflake.repo && \
   echo "gpgcheck=0" >> /etc/yum.repos.d/orchard-snowflake.repo && \
   echo "gpgkey=https://packagecloud.io/orchardit/snowflake/gpgkey" >> /etc/yum.repos.d/orchard-snowflake.repo

RUN yum -y install snowflake-odbc && yum clean all

# Configure snowflake-odbc
COPY odbc.ini /etc/

# Configure PHP
# Increase PHP memory limit
RUN sed -i "s/memory_limit = 128M/memory_limit = 256M/" /etc/php.ini
# Use PHP short_open_tag, which allows `<?` instead of `<?php`
RUN sed -i "s/short_open_tag = Off/short_open_tag = On/" /etc/php.ini
# Set PHP TZ
RUN echo "date.timezone = America/New_York" >> /etc/php.ini

# Install Composer
RUN php -r "readfile('https://getcomposer.org/installer');" > composer-setup.php
RUN php -r "readfile('https://composer.github.io/installer.sig');" > composer-signature.txt
RUN php -r "if (hash('SHA384', file_get_contents('composer-setup.php')) === trim(file_get_contents('composer-signature.txt'))) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
RUN php composer-setup.php
RUN php -r "unlink('composer-setup.php');"
RUN php -r "unlink('composer-signature.txt');"
RUN mv composer.phar /usr/local/bin/composer && chmod +x /usr/local/bin/composer

# Configure Composer
RUN mkdir -p ~/.ssh
RUN echo 'Host *\n\tStrictHostKeyChecking no\n' >> ~/.ssh/config
ARG GITHUB_OAUTH_TOKEN
RUN composer config --global github-oauth.github.com ${GITHUB_OAUTH_TOKEN}

# Configure environment
ENV APP_HOME /var/www/html
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME

# Copy the application into the Docker image
COPY . $APP_HOME

# Run Composer install
RUN composer update --prefer-dist --no-autoloader

# Pretty big performance gain here
RUN composer dump-autoload --optimize
