FROM php:8-fpm

RUN apt-get update \
  && apt-get install -y \
             apt-utils \
             man \
             curl \
             git \
             bash \
             vim \
             zip unzip \
             acl \
             iproute2 \
             dnsutils \
             fonts-freefont-ttf \
             fontconfig \
             dbus \
             openssh-client \
             sendmail \
			 libfreetype6 \
             libfreetype6-dev \
             libjpeg62-turbo-dev \
             icu-devtools \
             libicu-dev \
             libmcrypt4 \
             libmcrypt-dev \
             libpng-dev \
             zlib1g-dev \
             libxml2-dev \
             libzip-dev \
             libonig-dev \
             graphviz \
             libcurl4-openssl-dev \
             pkg-config \
             libldap2-dev \
             libpq-dev \
             libxslt-dev \
			 libmemcached-dev \
             libbz2-dev \
             libssh2-1 \
             libssh2-1-dev \
             libssl-dev
			
			
			
RUN apt-get install -y build-essential
RUN apt-get install -y libwebp-dev
RUN apt-get install -y libxpm-dev
RUN apt-get install -y locales
RUN apt-get install -y jpegoptim optipng pngquant gifsicle

	
	
RUN docker-php-ext-install -j$(nproc) bcmath bz2 calendar exif intl zip opcache soap iconv mbstring mysqli pdo_mysql
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install -j$(nproc) gd
RUN docker-php-ext-install xsl
RUN docker-php-ext-install pcntl
	
RUN pecl install -f xdebug-3.0.4 && docker-php-ext-enable xdebug
RUN pecl install ssh2-1.3.1
RUN docker-php-ext-enable ssh2


RUN chmod 777 /var/log

RUN pecl install mongodb && docker-php-ext-enable mongodb
#RUN pecl install amqp-1.10.2 && docker-php-ext-enable amqp
RUN pecl install redis && docker-php-ext-enable redis
RUN pecl install memcached && docker-php-ext-enable memcached

#Устанавливаем ImageMagick и необходимые библиотеки
#RUN apt install -y libmagickwand-dev --no-install-recommends

RUN apt-get update && apt-get install -y libmagickwand-6.q16-dev --no-install-recommends \
 && ln -s /usr/lib/x86_64-linux-gnu/ImageMagick-6.8.9/bin-Q16/MagickWand-config /usr/bin \
 && pecl install imagick \
 && echo "extension=imagick.so" > /usr/local/etc/php/conf.d/ext-imagick.ini


#RUN pecl install imagick && docker-php-ext-enable imagick
    #rm -rf /var/lib/apt/lists/*
#RUN apt install -y imagemagick php-imagick

RUN pecl install dbase && docker-php-ext-enable dbase


# Куда же без composer'а.
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Установить midnight-commander
RUN apt-get install -y mc


#7zip
RUN apt-get install -y p7zip p7zip-full

# ping
RUN apt-get install iputils-ping -y
#RUN apy-get install php7.2-cgi


#Codeception
RUN composer global require codeception/codeception

RUN apt-get install htop
RUN apt-get install net-tools
RUN docker-php-ext-install sockets



#для эмуляуции ssl
RUN apt-get install certbot -y

#Установка crom
RUN apt-get update && apt-get -y install cron

#Установка необходимых библиотек
RUN apt-get update && apt-get install -y  default-mysql-client

#Расширение IMAP
RUN apt update && apt install -y libc-client-dev libkrb5-dev
RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && docker-php-ext-install imap

# Create the log file to be able to run tail
RUN touch /var/log/cron.log

#DBF в MySQL: Как я конвертировал ФИАС.
RUN apt install dbf2mysql

#FFmpeg - это бесплатный набор инструментов с открытым исходным кодом для работы с мультимедийными файлами.
#https://linuxize.com/post/how-to-install-ffmpeg-on-ubuntu-20-04/
RUN apt-get update
RUN apt-get install ffmpeg -y 


# Add user for laravel application
# RUN groupadd -g 1000 www
# RUN useradd -u 1000 -ms /bin/bash -g www www




# Run the command on container startup
#CMD cron && tail -f /var/log/cron.log


RUN echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.discover_client_host=0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "error_reporting=E_ALL" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "display_startup_errors=On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "display_errors=On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.idekey=PHPSTORM" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
#RUN echo "xdebug.remote_port=9000" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
#RUN echo "xdebug.remote_autostart=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.var_display_max_depth = -1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.var_display_max_children = -1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.var_display_max_data = -1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.client_host=host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.remote_handler = dbgp" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

# Добавим свой php.ini, можем в нем определять свои значения конфига
#ADD php.ini /usr/local/etc/php/conf.d/40-custom.ini
ADD php.ini /usr/local/etc/php/php.ini
#ADD xdebug.ini /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

ENV TZ=Europe/Moscow



# Указываем рабочую директорию для PHP
WORKDIR /var/www


#RUN chown -R $USER:www-data /var/www
RUN chmod -R 0777 /var/www


# Запускаем контейнер
# Из документации: The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable, 
# or they can omit the executable, in which case you must specify an ENTRYPOINT instruction as well.
CMD ["php-fpm"]