Содержание

Климат мастер

Компания «Климат-Мастер» на сегодняшний день является крупным климатическим холдингом, в котором функционируют несколько Интернет-магазинов, а также несколько розничных шоурумов. Кроме того, мы активно сотрудничаем с региональными дилерами, а также развиваем сеть технического и сервисного обслуживания. Мы являемся официальным дилером таких брендов, как Daikin, Mitsubishi Heavy, Mitsubishi Electric, Boneco, Venta, Stadler Form, Sharp, Toshiba, Panasonic, а также многих других.

сайты

Структура папок и конфиги: docker.rar

docker-compose.yaml

# Версия docker-compose
version: '3'
# Список наших сервисов (контейнеров)
services:
    nginx:
        # используем последний стабильный образ nginx
        image: nginx:latest
        # маршрутизируем порты
        ports:
            - "80:80"
            - "443:443"
        # монтируем директории, слева директории на основной машине, справа - куда они монтируются в контейнере
        volumes:
            - ../../hosts:/etc/nginx/conf.d
            - ../../www:/var/www
            - ../../logs:/var/log/nginx
            - ../../files/imagick:/var/lib/apt/lists/
            - /tmp:/tmp
        # nginx должен общаться с php контейнером
        networks:
          my-net:
            aliases: # алиасы нужны если нужно общаться внутри сети между хостами. Например, если вы используете api
              - mir-vozduha.localhost
              - local.api
              - leto-zima.localhost
              - venta-shop.localhost
              - klimat-master.localhost
              - airte.localhost
        container_name: nginx5.6
    php:
        # у нас свой образ для PHP, указываем путь к нему и говорим что его надо собрать
        build: ../../images/php5.6
        # этот образ будет общаться с mysql
        networks:
            - my-net
        # монтируем директорию с проектами
        volumes:
            - ../../www:/var/www
            - ../../files/imagick:/var/lib/apt/lists/
            - /tmp:/tmp
        container_name: php5.6
    db2:
        image: "mysql:5.7"
        environment:
          MYSQL_ROOT_PASSWORD: 2619192
          MYSQL_USER: mysql
          MYSQL_PASSWORD: admin
          MYSQL_DATABASE: kartoteka_local
        ports:
          - "3306:3306"
        volumes:
          - ../../mysql/mysql5.7:/var/lib/mysql
        networks:
            - my-net
        container_name: mysql5.7
    redis:
        container_name: redis
        image: redis
        ports:
          - "6379:6379"
        volumes:
          - ../../redis:/data
        networks:
            - my-net
    phpredisadmin:
        build: ../../images/phpRedisAdmin
        environment:
          - ADMIN_USER=admin
          - ADMIN_PASS=admin
          - REDIS_1_HOST=redis
          - REDIS_1_PORT=6379
        networks:
            - my-net
        ports:
          - "8081:80"
networks:
  my-net:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 192.168.223.0/28

Dockerfile

# Для начала указываем исходный образ, он будет использован как основа
FROM php:5.6-fpm
# Необязательная строка с указанием автора образа
MAINTAINER PHPtoday.ru <info@phptoday.ru>
 
# RUN выполняет идущую за ней команду в контексте нашего образа.
# В данном случае мы установим некоторые зависимости и модули PHP.
# Для установки модулей используем команду docker-php-ext-install.
# На каждый RUN создается новый слой в образе, поэтому рекомендуется объединять команды.
RUN apt-get update && apt-get install -y \
        curl \
        wget \
        git \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng-dev \
        libicu-dev \
        libmemcached-dev \
        libbz2-dev \
        libssh2-1 \
        libssh2-1-dev \
        libssl-dev \
        librabbitmq-dev \
        libxml2-dev \
        libxslt-dev \
    && docker-php-ext-install -j$(nproc) bcmath bz2 calendar exif intl zip opcache soap iconv mbstring mysqli pdo_mysql zip \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd \
    && docker-php-ext-install xsl
RUN pecl install https://xdebug.org/files/xdebug-2.5.5.tgz \
RUN pecl install ssh2-0.13
RUN docker-php-ext-enable xdebug ssh2
RUN echo "error_reporting = E_ALL" > /usr/local/etc/php/php.ini
RUN echo "output_buffering = 4096">> /usr/local/etc/php/php.ini
RUN echo "post_max_size = 256M">> /usr/local/etc/php/php.ini
RUN echo "upload_max_filesize = 256M">> /usr/local/etc/php/php.ini
RUN echo "date.timezone = Europe/Moscow">> /usr/local/etc/php/php.ini
RUN echo "display_startup_errors = On">> /usr/local/etc/php/php.ini
RUN echo "display_errors = On">> /usr/local/etc/php/php.ini
RUN echo "expose_php = Off">> /usr/local/etc/php/php.ini
RUN echo "xdebug.remote_enable=1">> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
# RUN echo "xdebug.remote_connect_back=0">> /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.remote_connect_back=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.remote_host=10.0.75.1">> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN chmod 777 /var/log
 
RUN pecl install mongodb && docker-php-ext-enable mongodb
RUN pecl install amqp && docker-php-ext-enable amqp
RUN pecl install redis-3.1.0 && docker-php-ext-enable redis
RUN pecl install memcached-2.2.0 && docker-php-ext-enable memcached
 
#Устанавливаем ImageMagick и необходимые библиотеки
RUN apt install -y libmagickwand-dev --no-install-recommends
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
 
#Codeception
RUN composer global require codeception/codeception
 
# Добавим свой php.ini, можем в нем определять свои значения конфига
#ADD php.ini /usr/local/etc/php/conf.d/40-custom.ini
ADD php.ini /usr/local/etc/php/php.ini
 
ENV DEBUG="local"
 
# Указываем рабочую директорию для PHP
WORKDIR /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"]

CRM

docker-compose.yaml

# Версия docker-compose
version: '3'
# Список наших сервисов (контейнеров)
services:
    nginx:
        # используем последний стабильный образ nginx
        image: nginx:latest
        restart: always
 
        # маршрутизируем порты
        ports:
            - "80:80"
            - "443:443"
        # монтируем директории, слева директории на основной машине, справа - куда они монтируются в контейнере
        volumes:
            - ../../hosts:/etc/nginx/conf.d
            - ../../www:/var/www
            - ../../logs:/var/log/nginx
            - ../../files/imagick:/var/lib/apt/lists/
            - /tmp:/tmp
            - /etc/localtime:/etc/localtime:ro
        # nginx должен общаться с php контейнером
        container_name: nginx7.2
        # nginx должен общаться с php контейнером
        networks:
          internal:
            aliases: # алиасы нужны если нужно общаться внутри сети между хостами. Например, если вы используете api
              - mir-vozduha.localhost
              - local.api
              - leto-zima.localhost
              - venta-shop.localhost
              - klimat-master.localhost
              - airte.localhost
    php:
        # у нас свой образ для PHP, указываем путь к нему и говорим что его надо собрать
        build: ../../images/php
        restart: always
        # этот образ будет общаться с mysql
        # монтируем директорию с проектами
        volumes:
            - ../../www:/var/www
            - ../../files/imagick:/var/lib/apt/lists/
            - /tmp:/tmp
            - /etc/localtime:/etc/localtime:ro
        container_name: php7.2
        #environment:
            #XDEBUG_CONFIG: "remote_host=192.168.220.1 remote_enable=1"
            #PHP_IDE_CONFIG: "serverName=Docker"
        networks:
            - internal
    db:
        image: mysql
        command: --default-authentication-plugin=mysql_native_password
        restart: always
        environment:
               MYSQL_ROOT_PASSWORD: 2619192
        ports:
               - 3306:3306
        container_name: mysql8.0
        volumes:
               - ../../mysql/mysql8.0:/var/lib/mysql
               - ../../mysql/dump:/data
               - /etc/localtime:/etc/localtime:ro
        networks:
            - internal
    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        container_name: phpmyadmin-crm
        restart: always
        ports:
            - 8080:80
        environment:
            MYSQL_ROOT_PASSWORD: 2619192
        networks:
            - internal
    redis:
        container_name: redis-crm
        image: redis
        ports:
          - "6379:6379"
        volumes:
          - ../../redis-crm:/data
        restart: always
        networks:
            - internal
    phpredisadmin:
        build: ../../images/phpRedisAdmin
        container_name: phpRedisAdmin-crm
        environment:
          - ADMIN_USER=admin
          - ADMIN_PASS=admin
          - REDIS_1_HOST=redis
          - REDIS_1_PORT=6379
        restart: always
        networks:
            - internal
        ports:
          - "8081:80"
networks:
    internal:
        driver: bridge
        ipam:
            driver: default
            config:
                - subnet: 192.168.220.0/28

Dockerfile

# Для начала указываем исходный образ, он будет использован как основа
FROM php:7.2-fpm
# Необязательная строка с указанием автора образа
MAINTAINER PHPtoday.ru <info@phptoday.ru>
 
# RUN выполняет идущую за ней команду в контексте нашего образа.
# В данном случае мы установим некоторые зависимости и модули PHP.
# Для установки модулей используем команду docker-php-ext-install.
# На каждый RUN создается новый слой в образе, поэтому рекомендуется объединять команды.
RUN apt-get update && apt-get install -y \
        curl \
        wget \
        git \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng-dev \
        libicu-dev \
        libmemcached-dev \
        libbz2-dev \
        libssh2-1 \
        libssh2-1-dev \
        libssl-dev \
        librabbitmq-dev \
        libxml2-dev \
        libxslt-dev \
    && docker-php-ext-install -j$(nproc) bcmath bz2 calendar exif intl zip opcache soap iconv mbstring mysqli pdo_mysql zip \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd \
    && docker-php-ext-install xsl
RUN pecl install https://xdebug.org/files/xdebug-2.8.0.tgz
RUN pecl install ssh2-1.1.2
RUN docker-php-ext-enable xdebug ssh2
RUN echo "error_reporting = E_ALL" > /usr/local/etc/php/php.ini
RUN echo "output_buffering = 4096">> /usr/local/etc/php/php.ini
RUN echo "post_max_size = 256M">> /usr/local/etc/php/php.ini
RUN echo "upload_max_filesize = 256M">> /usr/local/etc/php/php.ini
RUN echo "date.timezone = Europe/Moscow">> /usr/local/etc/php/php.ini
RUN echo "display_startup_errors = On">> /usr/local/etc/php/php.ini
RUN echo "display_errors = On">> /usr/local/etc/php/php.ini
RUN echo "expose_php = Off">> /usr/local/etc/php/php.ini
RUN echo "xdebug.remote_enable=1">> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
# RUN echo "xdebug.remote_connect_back=0">> /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.remote_connect_back=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.remote_host=192.168.220.1">> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
 
RUN chmod 777 /var/log
 
RUN pecl install mongodb && docker-php-ext-enable mongodb
RUN pecl install amqp && 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
 
#Installer Microsoft ODBC Driver for SQL Server (Linux)
#https://docs.microsoft.com/fr-fr/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15
RUN apt-get install -y curl wget gnupg apt-transport-https
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update 
 
RUN ACCEPT_EULA=Y apt-get install -y  --assume-yes msodbcsql17 
RUN ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated mssql-tools
 
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
#RUN source ~/.bashrc
 
RUN apt-get -y install libodbc1  unixodbc \
    unixodbc-dev \
    libgss3 \
    odbcinst \
    msodbcsql17 \
    locales \
    libgssapi-krb5-2 \
    && echo "ru_RU.UTF-8 UTF-8" > /etc/locale.gen && locale-gen
 
 
#install mssql
RUN pecl install pdo_sqlsrv-5.3.0 sqlsrv-5.3.0
RUN docker-php-ext-enable sqlsrv
RUN docker-php-ext-enable pdo_sqlsrv
 
#screenfetch описание системы
RUN apt-get install screenfetch -y
 
#openssl
RUN apt-get update -yqq
RUN apt-get install -y --no-install-recommends openssl
RUN sed -i 's,^\(MinProtocol[ ]*=\).*,\1'TLSv1.0',g' /etc/ssl/openssl.cnf
RUN sed -i 's,^\(CipherString[ ]*=\).*,\1'DEFAULT@SECLEVEL=1',g' /etc/ssl/openssl.cnf
RUN rm -rf /var/lib/apt/lists/*
 
# Добавим свой php.ini, можем в нем определять свои значения конфига
#ADD php.ini /usr/local/etc/php/conf.d/40-custom.ini
ADD php.ini /usr/local/etc/php/php.ini
 
# Указываем рабочую директорию для PHP
WORKDIR /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"]

Структура папок: docker.rar