├── .gitignore ├── nginx ├── upstream.conf ├── Dockerfile ├── nginx.conf └── default.conf ├── php56-cli ├── local ├── default.cron ├── msmtprc ├── php.ini └── Dockerfile ├── php56-fpm ├── local ├── msmtprc ├── Dockerfile └── php.ini ├── php56-fpm-develop ├── local ├── msmtprc ├── Dockerfile └── php.ini ├── rclone ├── Dockerfile └── rclone.conf ├── mysql ├── Dockerfile └── conf.d │ └── my.cnf ├── README.md ├── docker-compose.develop.yml └── docker-compose.yml /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /logs 3 | /data 4 | .env -------------------------------------------------------------------------------- /nginx/upstream.conf: -------------------------------------------------------------------------------- 1 | upstream php-upstream { 2 | server php:9000; 3 | } -------------------------------------------------------------------------------- /php56-cli/local: -------------------------------------------------------------------------------- 1 | Dpkg::Options { 2 | "--force-confdef"; 3 | "--force-confold"; 4 | } -------------------------------------------------------------------------------- /php56-fpm/local: -------------------------------------------------------------------------------- 1 | Dpkg::Options { 2 | "--force-confdef"; 3 | "--force-confold"; 4 | } -------------------------------------------------------------------------------- /php56-fpm-develop/local: -------------------------------------------------------------------------------- 1 | Dpkg::Options { 2 | "--force-confdef"; 3 | "--force-confold"; 4 | } -------------------------------------------------------------------------------- /rclone/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM bcardiff/rclone 2 | 3 | MAINTAINER vitams 4 | 5 | ADD rclone.conf /config/rclone.conf -------------------------------------------------------------------------------- /mysql/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mysql:5.7 2 | 3 | MAINTAINER vitams 4 | 5 | ADD conf.d/my.cnf /etc/mysql/conf.d/my.cnf 6 | 7 | CMD ["mysqld"] 8 | 9 | EXPOSE 3306 10 | -------------------------------------------------------------------------------- /rclone/rclone.conf: -------------------------------------------------------------------------------- 1 | [selectel] 2 | type = swift 3 | env_auth = false 4 | user = 69444_site 5 | key = JxaWvVA9q 6 | auth = https://auth.selcdn.ru/v1.0 7 | endpoint_type = public 8 | 9 | -------------------------------------------------------------------------------- /php56-cli/default.cron: -------------------------------------------------------------------------------- 1 | 2 | # Bitrix events 3 | * * * * * root /usr/bin/flock -n /root/cron.lockfile /usr/bin/php /var/www/site.ru/bitrix/php_interface/cron_events.php 1>> /dev/null 2>&1 4 | 5 | -------------------------------------------------------------------------------- /nginx/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:latest 2 | 3 | MAINTAINER vitams 4 | 5 | ADD nginx.conf /etc/nginx/ 6 | ADD upstream.conf /etc/nginx/conf.d/ 7 | ADD default.conf /etc/nginx/sites-available/ 8 | 9 | RUN usermod -u 1000 www-data 10 | 11 | CMD ["nginx"] 12 | 13 | EXPOSE 80 443 -------------------------------------------------------------------------------- /php56-cli/msmtprc: -------------------------------------------------------------------------------- 1 | 2 | # smtp account configuration for default 3 | account default 4 | logfile /var/log/msmtp/msmtp.log 5 | host smtp.yandex.ru 6 | port 25 7 | from site@site.ru 8 | keepbcc on 9 | auth on 10 | user MyUser 11 | password MyPassword 12 | tls on 13 | tls_certcheck off 14 | 15 | -------------------------------------------------------------------------------- /php56-fpm/msmtprc: -------------------------------------------------------------------------------- 1 | 2 | # smtp account configuration for default 3 | account default 4 | logfile /var/log/msmtp/msmtp.log 5 | host smtp.yandex.ru 6 | port 25 7 | from site@site.ru 8 | keepbcc on 9 | auth on 10 | user MyUser 11 | password MyPassword 12 | tls on 13 | tls_certcheck off 14 | 15 | -------------------------------------------------------------------------------- /php56-fpm-develop/msmtprc: -------------------------------------------------------------------------------- 1 | 2 | # smtp account configuration for default 3 | account default 4 | logfile /var/log/msmtp/msmtp.log 5 | host smtp.yandex.ru 6 | port 25 7 | from site@site.ru 8 | keepbcc on 9 | auth on 10 | user MyUser 11 | password MyPassword 12 | tls on 13 | tls_certcheck off 14 | 15 | -------------------------------------------------------------------------------- /mysql/conf.d/my.cnf: -------------------------------------------------------------------------------- 1 | [mysqld] 2 | innodb_flush_log_at_trx_commit = 2 3 | sync_binlog = 0 4 | innodb_flush_method = O_DIRECT 5 | transaction-isolation = READ-COMMITTED 6 | binlog_cache_size = 0 7 | sql_mode = "" 8 | bind-address=0.0.0.0 9 | pid-file = /var/run/mysqld/mysqld.pid 10 | socket = /var/run/mysqld/mysqld.sock 11 | 12 | -------------------------------------------------------------------------------- /nginx/nginx.conf: -------------------------------------------------------------------------------- 1 | user www-data; 2 | worker_processes auto; 3 | pid /run/nginx.pid; 4 | 5 | events { 6 | worker_connections 2048; 7 | multi_accept on; 8 | use epoll; 9 | } 10 | 11 | http { 12 | server_tokens off; 13 | sendfile on; 14 | tcp_nopush on; 15 | tcp_nodelay on; 16 | keepalive_timeout 15; 17 | types_hash_max_size 2048; 18 | client_max_body_size 20M; 19 | include /etc/nginx/mime.types; 20 | default_type application/octet-stream; 21 | access_log on; 22 | error_log on; 23 | gzip on; 24 | gzip_disable "msie6"; 25 | include /etc/nginx/conf.d/*.conf; 26 | include /etc/nginx/sites-available/*; 27 | open_file_cache max=100; 28 | } 29 | 30 | daemon off; -------------------------------------------------------------------------------- /php56-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phpdockerio/php56-fpm 2 | 3 | MAINTAINER vitams 4 | 5 | ADD local /etc/apt/apt.conf.d/local 6 | 7 | RUN apt-get update \ 8 | && apt-get -y --no-install-recommends install \ 9 | php5-memcached \ 10 | php5-memcache \ 11 | php5-mysql \ 12 | php5-intl \ 13 | php5-interbase \ 14 | php5-gd \ 15 | php5-imagick \ 16 | php5-mcrypt \ 17 | msmtp \ 18 | && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* 19 | 20 | ADD ./php.ini /etc/php5/fpm/conf.d/90-php.ini 21 | ADD ./php.ini /etc/php5/cli/conf.d/90-php.ini 22 | 23 | # MSMTP 24 | ADD msmtprc /etc/msmtprc 25 | RUN chmod 0600 /etc/msmtprc && \ 26 | chown www-data:www-data /etc/msmtprc && \ 27 | mkdir -p /var/log/msmtp/msmtp.log && \ 28 | touch /var/log/msmtp/msmtp.log && \ 29 | chmod 775 /var/log/msmtp/msmtp.log && \ 30 | chown www-data:www-data /var/log/msmtp/msmtp.log 31 | 32 | RUN usermod -u 1000 www-data 33 | 34 | EXPOSE 9000 -------------------------------------------------------------------------------- /php56-fpm-develop/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phpdockerio/php56-fpm 2 | 3 | MAINTAINER vitams 4 | 5 | ADD local /etc/apt/apt.conf.d/local 6 | 7 | RUN apt-get update \ 8 | && apt-get -y --no-install-recommends install \ 9 | php5-memcached \ 10 | php5-memcache \ 11 | php5-mysql \ 12 | php5-intl \ 13 | php5-interbase \ 14 | php5-gd \ 15 | php5-imagick \ 16 | php5-mcrypt \ 17 | php5-xdebug \ 18 | msmtp \ 19 | && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* 20 | 21 | ADD ./php.ini /etc/php5/fpm/conf.d/90-php.ini 22 | ADD ./php.ini /etc/php5/cli/conf.d/90-php.ini 23 | 24 | # MSMTP 25 | ADD msmtprc /etc/msmtprc 26 | RUN chmod 0600 /etc/msmtprc && \ 27 | chown www-data:www-data /etc/msmtprc && \ 28 | mkdir -p /var/log/msmtp/msmtp.log && \ 29 | touch /var/log/msmtp/msmtp.log && \ 30 | chmod 775 /var/log/msmtp/msmtp.log && \ 31 | chown www-data:www-data /var/log/msmtp/msmtp.log 32 | 33 | RUN usermod -u 1000 www-data 34 | 35 | EXPOSE 9000 -------------------------------------------------------------------------------- /php56-cli/php.ini: -------------------------------------------------------------------------------- 1 | [php] 2 | short_open_tag = On 3 | display_errors = On 4 | error_log = "/var/log/php/error.log" 5 | error_reporting = E_ERROR | E_PARSE | E_COMPILE_ERROR 6 | log_errors = On 7 | display_startup_errors = On 8 | cgi.fix_pathinfo = 0 9 | date.timezone = "Europe/Moscow" 10 | mbstring.func_overload = 2 11 | mbstring.internal_encoding = "CP-1251" 12 | max_input_vars = 10000 13 | post_max_size = 64M 14 | upload_max_filesize = 64M 15 | zlib.output_compression = Off 16 | max_execution_time = 300 17 | memory_limit = 256M 18 | zend.enable_gc = On 19 | expose_php = Off 20 | eport_memleaks = On 21 | realpath_cache_size = 4096K 22 | apc.ttl = 120 23 | apc.max_file_size = 4M 24 | apc.shm_size = 256M 25 | sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc --logfile /var/log/msmtp/msmtp.log -a default -t --timeout 5" 26 | 27 | [opcache] 28 | opcache.revalidate_freq = 0 29 | opcache.validate_timestamps = 1 30 | opcache.max_accelerated_files = 100000 31 | opcache.memory_consumption = 256 32 | opcache.interned_strings_buffer = 64 33 | opcache.fast_shutdown = 1 34 | opcache.error_log = "/var/log/php/opcache.log" -------------------------------------------------------------------------------- /php56-fpm/php.ini: -------------------------------------------------------------------------------- 1 | [php] 2 | short_open_tag = On 3 | display_errors = On 4 | error_log = "/var/log/php/error.log" 5 | error_reporting = E_ERROR | E_PARSE | E_COMPILE_ERROR 6 | log_errors = On 7 | display_startup_errors = On 8 | cgi.fix_pathinfo = 0 9 | date.timezone = "Europe/Moscow" 10 | mbstring.func_overload = 2 11 | mbstring.internal_encoding = "CP-1251" 12 | max_input_vars = 10000 13 | post_max_size = 64M 14 | upload_max_filesize = 64M 15 | zlib.output_compression = Off 16 | max_execution_time = 300 17 | memory_limit = 256M 18 | zend.enable_gc = On 19 | expose_php = Off 20 | eport_memleaks = On 21 | realpath_cache_size = 4096K 22 | apc.ttl = 120 23 | apc.max_file_size = 4M 24 | apc.shm_size = 256M 25 | sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc --logfile /var/log/msmtp/msmtp.log -a default -t --timeout 5" 26 | 27 | [opcache] 28 | opcache.revalidate_freq = 0 29 | opcache.validate_timestamps = 1 30 | opcache.max_accelerated_files = 100000 31 | opcache.memory_consumption = 256 32 | opcache.interned_strings_buffer = 64 33 | opcache.fast_shutdown = 1 34 | opcache.error_log = "/var/log/php/opcache.log" -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Пример реального Docker проекта для Bitrix - Single Node 2 | Данный пример взят из реального сайта, который работает в продакшене. 3 | Это самая простая схема, когда у вас одна нода (один сервер) и вы не используете никакие оркестраторы аля кубернетес. 4 | 5 | Вы можете развернуть данный пример как на виртуалке, так и на реальном сервере. 6 | 7 | Схема работы: 8 | - Копируете файлы сайта в ```/var/www/site.ru``` 9 | - Docker проект в папку ```/var/www/docker.site.ru``` 10 | - Поднимаете командой ```docker-compose up -d``` 11 | - Разворачиваете БД 12 | 13 | 14 | Для разработки рекомендуется разделять docker-compose и запускать на разработке с указанием файла разработки: 15 | ``` 16 | docker-compose -f docker-compose.develop.yml up -d 17 | ``` 18 | 19 | Преимущества данной схемы: 20 | - Сборка проверена в бою на большом кол-ве сайтов 21 | - Производительность конфигурации составляет 84.43 (Selectel, 1 ядро, 2 Гб RAM, 10 Гб SSD) 22 | - Все сервисы авто стартуют и автоматически перезагружаются в случае ошибки 23 | - Любой сервис легко обновить/заменить 24 | - БД бекапится по расписаню 25 | - Файлы папки upload бекапятся по расписанию 26 | - Настроена SMTP почта 27 | - Настроен CRON 28 | - Настроены разумные ограничения на использование ресурсов 29 | 30 | Пишите вопросы/предложения в issue 31 | 32 | -------------------------------------------------------------------------------- /nginx/default.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80 default; 3 | 4 | server_name _; 5 | root /var/www/site.ru; 6 | index index.php; 7 | 8 | access_log /var/log/nginx/site.ru_access.log; 9 | error_log stderr; 10 | 11 | location / { 12 | try_files $uri $uri/ @bitrix; 13 | } 14 | 15 | location @bitrix { 16 | fastcgi_pass php-upstream; 17 | include fastcgi_params; 18 | fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php; 19 | } 20 | 21 | location ~ \.php$ { 22 | include fastcgi_params; 23 | fastcgi_pass php-upstream; 24 | fastcgi_index index.php; 25 | fastcgi_send_timeout 360; 26 | fastcgi_read_timeout 360; 27 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 28 | } 29 | 30 | location ~* ^.+\.(?:css|jpe?g|htc|ico|png|woff|html|gif|svg|js|txt|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ { 31 | access_log off; 32 | expires max; 33 | tcp_nodelay off; 34 | } 35 | 36 | location ~ /upload/ { 37 | client_body_buffer_size 1024m; 38 | client_max_body_size 1024m; 39 | } 40 | 41 | location ~ (/\.ht|/bitrix/modules|/upload/support/not_image|/bitrix/php_interface) { 42 | deny all; 43 | } 44 | 45 | location ~ /.git/ { 46 | deny all; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /php56-cli/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phpdockerio/php56-cli 2 | 3 | MAINTAINER vitams 4 | 5 | ADD local /etc/apt/apt.conf.d/local 6 | 7 | RUN apt-get update \ 8 | && apt-get -y --no-install-recommends install \ 9 | php5-memcached \ 10 | php5-memcache \ 11 | php5-mysql \ 12 | php5-intl \ 13 | php5-interbase \ 14 | php5-gd \ 15 | php5-imagick \ 16 | php5-mcrypt \ 17 | msmtp \ 18 | cron \ 19 | rsyslog \ 20 | mysql-client \ 21 | && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* 22 | 23 | ADD ./php.ini /etc/php5/fpm/conf.d/90-php.ini 24 | ADD ./php.ini /etc/php5/cli/conf.d/90-php.ini 25 | 26 | # MSMTP 27 | ADD msmtprc /etc/msmtprc 28 | RUN chmod 0600 /etc/msmtprc && \ 29 | chown www-data:www-data /etc/msmtprc && \ 30 | mkdir -p /var/log/msmtp/msmtp.log && \ 31 | touch /var/log/msmtp/msmtp.log && \ 32 | chmod 775 /var/log/msmtp/msmtp.log && \ 33 | chown www-data:www-data /var/log/msmtp/msmtp.log 34 | 35 | # CRON 36 | RUN set -ex \ 37 | && mkfifo --mode 0666 /var/log/cron.log \ 38 | && sed --regexp-extended --in-place \ 39 | 's/^session\s+required\s+pam_loginuid.so$/session optional pam_loginuid.so/' \ 40 | /etc/pam.d/cron 41 | ADD default.cron /etc/cron.d/default 42 | RUN chmod 0644 /etc/cron.d/default 43 | RUN touch /var/log/cron.log 44 | 45 | RUN usermod -u 1000 www-data 46 | 47 | CMD cron && tail -f /var/log/cron.log 48 | -------------------------------------------------------------------------------- /php56-fpm-develop/php.ini: -------------------------------------------------------------------------------- 1 | [php] 2 | short_open_tag = On 3 | display_errors = On 4 | error_log = "/var/log/php/error.log" 5 | error_reporting = E_ERROR | E_PARSE | E_COMPILE_ERROR 6 | log_errors = On 7 | display_startup_errors = On 8 | cgi.fix_pathinfo = 0 9 | date.timezone = "Europe/Moscow" 10 | mbstring.func_overload = 2 11 | mbstring.internal_encoding = "CP-1251" 12 | max_input_vars = 10000 13 | post_max_size = 64M 14 | upload_max_filesize = 64M 15 | zlib.output_compression = Off 16 | max_execution_time = 300 17 | memory_limit = 256M 18 | zend.enable_gc = On 19 | expose_php = Off 20 | eport_memleaks = On 21 | realpath_cache_size = 4096K 22 | apc.ttl = 120 23 | apc.max_file_size = 4M 24 | apc.shm_size = 256M 25 | sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc --logfile /var/log/msmtp/msmtp.log -a default -t --timeout 5" 26 | 27 | [opcache] 28 | opcache.revalidate_freq = 0 29 | opcache.validate_timestamps = 1 30 | opcache.max_accelerated_files = 100000 31 | opcache.memory_consumption = 256 32 | opcache.interned_strings_buffer = 64 33 | opcache.fast_shutdown = 1 34 | opcache.error_log = "/var/log/php/opcache.log" 35 | 36 | [xdebug] 37 | xdebug.remote_connect_back = 1 38 | xdebug.remote_port = 9000 39 | xdebug.auto_trace = 0 40 | xdebug.default_enable = 1 41 | xdebug.idekey = "PHPSTORM" 42 | xdebug.max_nesting_level = 250 43 | xdebug.profiler_enable = 0 44 | xdebug.profiler_enable_trigger = 0 45 | xdebug.profiler_output_dir = "/tmp/" 46 | xdebug.profiler_output_name = "cachegrind.out.%H%R" 47 | xdebug.remote_enable = 1 -------------------------------------------------------------------------------- /docker-compose.develop.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | volumes: 4 | site-mysql-v1: 5 | 6 | services: 7 | nginx: 8 | build: ./nginx 9 | container_name: nginx 10 | ports: 11 | - '80:80' 12 | links: 13 | - php56-fpm:php 14 | networks: 15 | - site 16 | volumes: 17 | - ./logs/nginx:/var/log/nginx 18 | - /var/www/site.ru:/var/www/site.ru 19 | - /etc/timezone:/etc/timezone:ro 20 | - /etc/localtime:/etc/localtime:ro 21 | restart: unless-stopped 22 | php56-fpm: 23 | build: ./php56-fpm 24 | container_name: php56-fpm 25 | ports: 26 | - '9000:9000' 27 | links: 28 | - mysql 29 | - memcached 30 | networks: 31 | - site 32 | volumes: 33 | - /var/www/site.ru:/var/www/site.ru 34 | - /etc/timezone:/etc/timezone:ro 35 | - /etc/localtime:/etc/localtime:ro 36 | restart: unless-stopped 37 | php56-cli: 38 | build: ./php56-cli 39 | container_name: php56-cli 40 | links: 41 | - mysql 42 | - memcached 43 | networks: 44 | - site 45 | volumes: 46 | - /var/www/site.ru:/var/www/site.ru 47 | - /etc/timezone:/etc/timezone:ro 48 | - /etc/localtime:/etc/localtime:ro 49 | restart: unless-stopped 50 | mysql: 51 | build: ./mysql 52 | container_name: mysql 53 | ports: 54 | - '3306:3306' 55 | environment: 56 | MYSQL_DATABASE: site 57 | MYSQL_USER: site 58 | MYSQL_PASSWORD: xV1S1YQFLwL1 59 | MYSQL_ROOT_PASSWORD: ZVjS2YQaL6L1 60 | networks: 61 | - site 62 | volumes: 63 | - site-mysql-v1:/var/lib/mysql 64 | - /etc/timezone:/etc/timezone:ro 65 | - /etc/localtime:/etc/localtime:ro 66 | restart: unless-stopped 67 | memcached: 68 | image: memcached:1.5-alpine 69 | container_name: memcached 70 | ports: 71 | - '11211:11211' 72 | entrypoint: 73 | - memcached 74 | - --memory-limit=1024m 75 | - --max-item-size=32m 76 | restart: unless-stopped 77 | mem_limit: 1073741824 78 | cpu_shares: 512 79 | networks: 80 | - site 81 | networks: 82 | site: 83 | driver: bridge 84 | ipam: 85 | driver: default 86 | config: 87 | - subnet: 10.0.0.0/8 -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | volumes: 4 | site-mysql-v1: 5 | 6 | services: 7 | nginx: 8 | build: ./nginx 9 | container_name: nginx 10 | ports: 11 | - '80:80' 12 | links: 13 | - php56-fpm:php 14 | networks: 15 | - site 16 | volumes: 17 | - ./logs/nginx:/var/log/nginx 18 | - /var/www/site.ru:/var/www/site.ru 19 | - /etc/timezone:/etc/timezone:ro 20 | - /etc/localtime:/etc/localtime:ro 21 | restart: unless-stopped 22 | php56-fpm: 23 | build: ./php56-fpm 24 | container_name: php56-fpm 25 | links: 26 | - mysql 27 | - memcached 28 | networks: 29 | - site 30 | volumes: 31 | - /var/www/site.ru:/var/www/site.ru 32 | - /etc/timezone:/etc/timezone:ro 33 | - /etc/localtime:/etc/localtime:ro 34 | restart: unless-stopped 35 | php56-cli: 36 | build: ./php56-cli 37 | container_name: php56-cli 38 | links: 39 | - mysql 40 | - memcached 41 | networks: 42 | - site 43 | volumes: 44 | - /var/www/site.ru:/var/www/site.ru 45 | - /etc/timezone:/etc/timezone:ro 46 | - /etc/localtime:/etc/localtime:ro 47 | restart: unless-stopped 48 | mysql: 49 | build: ./mysql 50 | container_name: mysql 51 | environment: 52 | MYSQL_DATABASE: site 53 | MYSQL_USER: site 54 | MYSQL_PASSWORD: xV1S1YQFLwL1 55 | MYSQL_ROOT_PASSWORD: ZVjS2YQaL6L1 56 | networks: 57 | - site 58 | volumes: 59 | - site-mysql-v1:/var/lib/mysql 60 | - /etc/timezone:/etc/timezone:ro 61 | - /etc/localtime:/etc/localtime:ro 62 | restart: unless-stopped 63 | memcached: 64 | image: memcached:1.5-alpine 65 | container_name: memcached 66 | entrypoint: 67 | - memcached 68 | - --memory-limit=1024m 69 | - --max-item-size=32m 70 | restart: unless-stopped 71 | mem_limit: 1073741824 72 | cpu_shares: 512 73 | networks: 74 | - site 75 | mysql-backup: 76 | image: vmpartner/mysql-buckup 77 | container_name: mysql-buckup 78 | environment: 79 | CRON_JOB: 30 3 * * * 80 | FTP_PASSWORD: JxaWvVA9q 81 | FTP_URL: ftp://ftp.selcdn.ru/site.ru/db/ 82 | FTP_USER: 69444_site 83 | MYSQL_HOST: mysql 84 | MYSQL_USER: site 85 | MYSQL_PASSWORD: ZVjS2YQaL6L1 86 | MYSQL_DATABASE: site 87 | restart: unless-stopped 88 | mem_limit: 536870912 89 | cpu_shares: 512 90 | links: 91 | - mysql:mysql 92 | rclone: 93 | build: ./rclone 94 | container_name: rclone 95 | environment: 96 | SYNC_SRC: "/source" 97 | SYNC_DEST: "selectel:site.ru/upload/" 98 | TZ: "Europe/Moscow" 99 | CRON: "0 0 * * *" 100 | CRON_ABORT: "0 13 * * *" 101 | FORCE_SYNC: "0" 102 | # CHECK_URL: "https://healthchecks.io/" 103 | volumes: 104 | - /var/www/site.ru/upload:/source:ro 105 | restart: unless-stopped 106 | mem_limit: 536870912 107 | cpu_shares: 512 108 | networks: 109 | site: 110 | driver: bridge 111 | ipam: 112 | driver: default 113 | config: 114 | - subnet: 10.0.0.0/8 115 | --------------------------------------------------------------------------------