Sign inSign up

alex89102/bitrix

By alex89102

Updated almost 3 years ago

Контейнер для Bitrix с php 8.2

Image
5

7.8K

alex89102/bitrix repository overview

Приветствую!

Данные контейнеры создавались для удобства администрирования личных доработок на свежей версии Bitrix v.23.300.100 и выше, 
 контейнер с Bitrix содержит только файл restore.php для восстановления из резервной копии. 
Дополнительно в контейнере с Bitrix имеется установленный mc

1. Необходимо чтобы был установлен Docker-compose

2. Создаем директорию для стека приложений с файлом docker-compose.yml и .ENV

Описание: docker-compose.yml

version: '3.7'
services:
 mysql:
  image: alex89102/mariadb:latest
  restart: always
     logging:
      options:
        max-size: "10m"
        max-file: "3"
     environment:
       MYSQL_DATABASE: bxdb
       MYSQL_USER: MYSQL_USER
       MYSQL_PASSWORD: MYSQL_PASSWORD
       MYSQL_ROOT_PASSWORD: MYSQL_ROOT_PASSWORD
       MYSQL_CHARSET: utf8
       MYSQL_COLLATION: utf8_general_ci
     ports:
       - "3306:3306"
     volumes:
        - /opt/site/mysql/db/:/var/lib/mysql
 phpmyadmin:
    image: phpmyadmin
    restart: always
    ports:
      - 8080:80
   environment:
     - PMA_ARBITRARY=1
 bitrix:
   image: alex89102/bitrix:latest
   restart: always
   ports:
       - "80:80"
  volumes:
      - /opt/site/bitrix:/var/www/html/bx-site
      - /opt/site/nginx:/etc/nginx/
      - /opt/site/php82:/etc/php82
      - /opt/site/cron:/etc/crontabs
      - /opt/site/tmp:/opt/site/tmp

3. Создать файл .ENV с переменными для доступа к безе

MYSQL_USER= Пользователь базы данных указывается при восстановление Битрикса
MYSQL_PASSWORD= Пароль пользователя указывается при восстановление Битрикса
MYSQL_ROOT_PASSWORD= Пароль Рута

4. Описание по хранению данных volumes:

- /opt/site/mysql/db/ база данных где будет хранится локально
- /opt/site/bitrix - Главный каталог с Bitrix,  должен содержать Вашу резервную копию и файл restore.php, в этот же каталог восстановится сайт.
- /opt/site/nginx - каталог с вашей конфигурацией nginx в каталогах conf.d и http.d 
- /opt/site/php - каталог с вашей конфигурацией  php-fpm.conf  и  php.ini 
- /opt/site/cron:/etc/crontabs - Cron для задач Bitrix имя файла без расширения с именем root или crontab 
- /opt/site/tmp - Темп для Bitrix, выставить права на данную папку [хозяин:nobody, группа:docker]

5. Минимальные настройки для nginx и php, cron

В каталоге nginx создать каталоги conf.d и  http.d создать файл default.conf

server {
listen *:80;
index index.php index.html;
server_name localhost;
add_header X-XSS-Protection "1; mode=block";
error_log  /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html/bx-site;
location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
 }
}
-  в корне каталога nginx создать файл nginx.conf
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log warn;
    pid       /run/nginx.pid;
    include /etc/nginx/modules-enabled/*.conf;
    events {
    worker_connections 768;
    # multi_accept on;
    }
    http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    server_tokens off;
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    gzip on;
    proxy_hide_header X-Powered-By;
    add_header X-Frame-Options SAMEORIGIN;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    }
      - каталог с php
      - создать файл php-fpm.conf
    [www]
    user = nobody
    group = nobody
    listen = 127.0.0.1:9000
    pm = dynamic
    pm.max_children = 5
    pm.start_servers = 2
    pm.min_spare_servers = 1
    pm.max_spare_servers = 3
     - создать файл файл php.ini
    ate.timezone=Asia/Yekaterinburg
    display_errors=On
    log_errors=On
    memory_limit = 512M
    upload_max_filesize = 20M
    post_max_size = 20M
    ;mbstring.func_overload = 2
    ;mbstring.internal_encoding = UTF-8
    default_charset = "utf-8"
    opcache.enable=1
    opcache.revalidate_freq=0
    opcache.validate_timestamps=1
    opcache.memory_consumption=64
    opcache.max_accelerated_files=100000
    opcache.enable_cli=1
    opcache.jit_buffer_size=128M
    opcache.jit=1255
    realpath_cache_size=4096k
    max_input_vars=10000
    short_open_tag=On
    ession.save_path = "/tmp"
    session.use_cookies=1
    session.use_only_cookies=1
    ;extension=session.so

      - каталог с cron
      - создать файл crontab
     # min    hour     day      month    weekday    command
     */1      *        *        *        *          /usr/bin/php82 -f /var/www/html/bx-site/bitrix/modules/main/tools/cron_events.php >> /var/log/cron.log
     */2      *        *        *        *          /usr/bin/php82 -f /var/www/html/bx-site/bitrix/php_interface/cron_events.php >> /var/log/cron.log

Tag summary

Content type

Image

Digest

sha256:a2f373a0c

Size

21.4 MB

Last updated

almost 3 years ago

docker pull alex89102/bitrix