- Bxdocker позволяет легко и просто запускать Bitrix CMS в Docker.
- Bxdocker облегчает разработку на Битрикс предоставляя готовые сервисы PHP, NGINX, MySQL, phpMyAdmin и многие другие.
- Сервис PHP запакован в отдельный образ, чтобы избавить разработчиков от долгого компилирования.
- Остальные сервисы так же "причёсаны" и разворачиваются моментально.
- Ничего лишнего.
Если вы работаете в Windows, то требуется установить виртуальную машину.
Желательно использовать Virtualbox, сделать сеть "Сетевой мост", поставить Ubuntu Server.
Сетевой мост даст возможность обращаться к машине по IP и не делать лишних пробросов портов.
Ваш рабочий проект должен хранится в двух местах, первое - локальная папка с проектами на хосте (открывается в IDE), второе - виртуальная машина
(например /var/www/bitrix
). Проект на хосте мапится в IDE к гостевой OC.
Git
apt-get install -y git
Docker & Docker-Compose
cd /usr/local/src && wget -qO- https://get.docker.com/ | sh
# Заменить 1.18.0 на текущую версию https://github.com/docker/compose/releases
curl -L "https://github.com/docker/compose/releases/download/1.18.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \
chmod +x /usr/local/bin/docker-compose
Склонируйте репозиторий bxdocker.
git clone https://github.com/creio/bxdocker.git
cd bxdocker
Выполните настройку окружения.
Скопируйте файл .env_template
в .env
cp -f .env_template .env
- Если у вас мак или windows, то удалите строчку /etc/localtime:/etc/localtime/:ro из docker-compose
- По умолчнию используется nginx php7, эти настройки можно изменить в файле
.env
. Также можно задать путь к каталогу с сайтом и параметры базы данных MySQL. - Если восстанавливаем сайт в старой кодировке, исправить в php конфигах.
mbstring.internal_encoding=ISO-8859-1
илиmbstring.func_overload=0
.
В настройках подключения требуется указывать имя сервиса, например для подключения к mysql нужно указывать
db
, а неlocalhost
. Пример конфига с подклчюением к mysql и memcached.
PHP_VERSION=php7 # Версия php
WEB_SERVER_TYPE=nginx # Веб-сервер nginx/apache
MYSQL_DATABASE=bitrix # Имя базы данных
MYSQL_USER=bitrix # Пользователь базы данных
MYSQL_PASSWORD=123 # Пароль для доступа к базе данных
MYSQL_ROOT_PASSWORD=123 # Пароль для пользователя root от базы данных
INTERFACE=0.0.0.0 # На данный интерфейс будут проксироваться порты `ip a`
SITE_PATH=./www/site # !!!относительный путь к директории Вашего сайта
Запустите docker.service
sudo systemctl start docker
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl stop docker
sudo systemctl status docker
docker-compose -h
docker-compose up -d # -d В режиме демона
docker-compose up -d --build
docker-compose up -d --force-recreate
docker-compose ps # Процессы
docker-compose stop # Остановка
docker-compose down # Остановка контейнеров
docker-compose down --volumes # Остановка и удаление контейнеров и сети
docker-compose exec web_server bash # Подключение к контейнеру web_server(консоль)
- Чтобы проверить, что все сервисы запустились посмотрите список процессов
docker ps
. - Посмотрите все прослушиваемые порты, должны быть 80, 11211, 9000
ss -tulpn
. - Откройте IP машины в браузере.
- Сайт будет доступен по адресу localhost
ip a
, если не указали INTERFACE. Чтобы сайт открывался по доменному имени, например, loc.dev, добавляем запись в файл /etc/hosts. https://wiki.archlinux.org/index.php/Network_configuration_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
127.0.0.1 loc.dev
docker ps -a # Lists containers (and tells you which images they are spun from)
docker rm container_id # Removes a container
docker rm $(docker ps --filter status=exited -q) # del stopped containers
docker rm $(docker ps -a -q) # delete all stopped containers with
docker kill $(docker ps -q) # kill all running containers with
docker images # Lists images
docker image prune -a -f # del all unused images
docker rmi image_id # Removes an image
docker rmi -f image_id # Forces removal
docker rmi $(docker images -q) # delete all images with
docker network ls # list network
docker network prune -f # del all unused network
- Если вы хотите начать с чистой установки Битрикса, скачайте файл bitrixsetup.php в папку с сайтом. По умолчанию стоит директория
/var/www/bitrix/
. - Для загрузки резервной копии в контейнер используйте команду:
cat /var/www/bitrix/backup.sql | docker exec -i mysql /usr/bin/mysql -u root -p123 bitrix
- phpMyAdmin на порту
:8080
. /var/www/html/
на порту:88
. Статичные файлы с./www/html
.
bitrixsetup.php
restore.php
bitrix_server_test.php
Если у вас появится новый проект и поменяется окружение, скопировать папку bxdocker, добавить или заменить сервисы и запустить.