Sign inSign up

snapix/october

By snapix

•Updated 9 months ago

October CMS v1.1.12

Image
0

1.1K

snapix/october repository overview

⁠October CMS Docker

Docker-образ для October CMS 1.1.12 на базе PHP 7.4 и Apache.

⁠📋 Описание

Этот проект предоставляет готовый Docker-образ для быстрого развертывания October CMS версии 1.1.12. Образ включает все необходимые зависимости, настроенный PHP, Apache и вспомогательные инструменты для работы с October CMS.

⁠🚀 Возможности

  • October CMS 1.1.12 - полная установка CMS
  • PHP 7.4 с предустановленными расширениями:
    • exif, gd, mysqli, opcache, pdo_pgsql, pdo_mysql, zip
  • Apache с включенным mod_rewrite
  • Node.js 20.x с npm для работы с frontend-инструментами
  • Composer для управления зависимостями
  • Cron для автоматического выполнения задач
  • Вспомогательные команды (artisan, tinker, october)
  • Настраиваемая конфигурация через переменные окружения

⁠📦 Требования

  • Docker
  • Docker Compose (опционально, для работы с базами данных)

⁠🛠️ Установка и запуск

⁠Базовая установка
  1. Клонируйте репозиторий:
git clone <repository-url>
cd snapix-dockered/october
  1. Соберите Docker-образ:
docker build -t october-cms:1.1.12 .
  1. Запустите контейнер:
docker run -d \
  --name october-cms \
  -p 8080:80 \
  -v $(pwd)/storage:/var/www/html/storage \
  -v $(pwd)/plugins:/var/www/html/plugins \
  -v $(pwd)/themes:/var/www/html/themes \
  october-cms:1.1.12
  1. Откройте браузер по адресу: http://localhost:8080⁠
⁠Проверка установки

После запуска контейнера проверьте версии установленного ПО:

# Проверка версии PHP
docker exec october-cms php --version

# Проверка версии Node.js (должна быть 20.x)
docker exec october-cms node --version

# Проверка версии npm
docker exec october-cms npm --version

# Проверка версии Composer
docker exec october-cms composer --version
⁠Использование с Docker Compose

Пример файла docker-compose.yml с поддержкой виртуальных хостов, MySQL и phpMyAdmin:

#docker-compose.yml
services:
  nginx-proxy:
    image: nginxproxy/nginx-proxy
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
    networks:
      - october-network

  october:
    image: snapix/october:latest
    expose:
      - 80
    ports:
      - 8888:80
      - 4001:3000  # для BrowserSync - опционально
    depends_on:
      mysql:
        condition: service_healthy
    volumes:
      - config:/var/www/html/config
      - plugins:/var/www/html/plugins
      - ./theme:/var/www/html/themes/theme # пример пользовательской темы
      - ./plugin:/var/www/html/plugins/yourplugin # пример пользовательского плагина
      - ./storage:/var/www/html/storage
    environment:
      - DB_TYPE=mysql
      - DB_HOST=mysql
      - DB_DATABASE=octobercms
      - DB_USERNAME=root
      - DB_PASSWORD=root
      - APP_ENV=docker
      - TZ=UTC
      - # плагины для автоматической установки при старте контейнера, через запятую
      - OCTOBER_PLUGINS=rainlab.builder,rainlab.user,blakejones.magicforms,rainlab.blog,rainlab.pages,ToughDeveloper.ImageResizer,Zen.Robots,offline.sitesearch,RainLab.Translate
      # Опционально: Виртуальные хосты для nginx-proxy. Можно указать несколько через запятую.
      - VIRTUAL_HOST=site1.local,site2.local
    networks:
      - october-network

  mysql:
    image: mysql:5.7
    platform: linux/amd64
    ports:
      - 3306:3306
    volumes:
      - mysql-data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=octobercms
    healthcheck:
      test: [ "CMD", "mysqladmin", "ping", "-h", "localhost", "-proot" ]
      interval: 5s
      timeout: 3s
      retries: 10
    networks:
      - october-network

  phpmyadmin:
    image: phpmyadmin
    restart: always
    depends_on:
      - mysql
    ports:
      - 8080:80
    environment:
      - PMA_HOST=mysql
      - PMA_USER=root
      - PMA_PASSWORD=root
      - UPLOAD_LIMIT=300M
      - MAX_EXECUTION_TIME=600
      - MEMORY_LIMIT=512M
    networks:
      - october-network

volumes:
  mysql-data:
  config:
  plugins:

networks:
  october-network:
    driver: bridge

Запустите:

docker-compose up -d

Доступ к сервисам:

⁠⚙️ Переменные окружения

⁠Настройки базы данных
ПеременнаяОписаниеЗначение по умолчанию
DB_TYPEТип базы данных (sqlite, mysql, pgsql)sqlite
DB_HOSTХост базы данныхmysql
DB_PORTПорт базы данных-
DB_DATABASEИмя базы данных-
DB_USERNAMEИмя пользователя БД-
DB_PASSWORDПароль БД-
DB_PATH_SQLITEПуть к SQLite файлуstorage/database.sqlite
⁠Настройки October CMS
ПеременнаяОписаниеЗначение по умолчанию
OCTOBER_PLUGINSСписок плагинов для автоматической установки (через запятую)-
APP_URLURL приложенияhttp://localhost
APP_ENVОкружение (local, production, docker)production
TZЧасовой поясUTC
⁠Настройки PHP
ПеременнаяОписаниеЗначение по умолчанию
PHP_DISPLAY_ERRORSОтображение ошибок PHPoff
PHP_MEMORY_LIMITЛимит памяти PHP128M
PHP_UPLOAD_MAX_FILESIZEМаксимальный размер загружаемого файла32M
PHP_POST_MAX_SIZEМаксимальный размер POST запроса32M
⁠Настройки Xdebug (для разработки)
ПеременнаяОписание
XDEBUG_ENABLEВключить Xdebug (true/false)
XDEBUG_REMOTE_HOSTХост для удаленной отладки

⁠🔧 Вспомогательные команды

Внутри контейнера доступны следующие команды:

# Выполнение Artisan команд
docker exec -it october-cms artisan cache:clear

# Запуск Tinker (интерактивная консоль)
docker exec -it october-cms tinker

# Команды October CMS
docker exec -it october-cms october up        # Обновление плагинов и миграций
docker exec -it october-cms october migrate   # Выполнение миграций

⁠📁 Структура проекта

.
├── Dockerfile                  # Основной Dockerfile
├── docker-oc-entrypoint       # Скрипт инициализации контейнера
├── config/
│   └── docker/                # Конфигурационные файлы October CMS
│       ├── app.php
│       ├── cache.php
│       ├── cms.php
│       ├── database.php
│       ├── environment.php
│       ├── mail.php
│       ├── queue.php
│       ├── session.php
│       └── system.php
└── README.md

⁠🔐 Права доступа

Docker-образ автоматически настраивает права доступа для следующих директорий:

  • /var/www/html/storage - 775
  • /var/www/html/plugins - 775
  • /var/www/html/themes - 775

Владелец: www-data:www-data

⁠📦 Node.js и npm

Образ включает Node.js версии 20.x и npm для работы с frontend-инструментами.

Проверка версий:

docker exec -it october-cms node --version
docker exec -it october-cms npm --version

Установка зависимостей:

docker exec -it october-cms npm install

Запуск скриптов:

docker exec -it october-cms npm run build

⁠🕐 Cron задачи

Контейнер автоматически запускает планировщик задач October CMS каждую минуту:

* * * * * php artisan schedule:run

⁠🐛 Отладка

Для просмотра логов контейнера:

docker logs -f october-cms

Для входа в контейнер:

docker exec -it october-cms bash

Логи October CMS находятся в:

/var/www/html/storage/logs/

⁠📝 Примечания

Образ создан исключительно для поддержки старых проектов на October CMS 1.1.12. Для других версий рекомендуется использовать официальные образы или создавать собственные на их основе.

  • При первом запуске с MySQL/PostgreSQL убедитесь, что база данных создана
  • SQLite используется по умолчанию для быстрого старта
  • Для production рекомендуется использовать MySQL или PostgreSQL
  • Все пользовательские данные (плагины, темы, хранилище) должны быть смонтированы как volumes

⁠📄 Лицензия

October CMS распространяется под MIT License⁠.

⁠🔗 Полезные ссылки

Tag summary

Content type

Image

Digest

sha256:2ee5eba2a…

Size

303.2 MB

Last updated

9 months ago

docker pull snapix/october