Компания «Климат-Мастер» на сегодняшний день является крупным климатическим холдингом, в котором функционируют несколько Интернет-магазинов, а также несколько розничных шоурумов. Кроме того, мы активно сотрудничаем с региональными дилерами, а также развиваем сеть технического и сервисного обслуживания. Мы являемся официальным дилером таких брендов, как 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"]
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