1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/nilsir-docker-lnmp

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Docker LNMP 3.0

Docker LNMP позволяет создать среду для разработки на PHP с использованием Docker. Преимущества включают быстрое создание различных версий связанных сервисов, унифицированное размещение среды на разных серверах и возможность сосредоточиться на разработке бизнес-логики.

Особенности продукта
  • Гибкое переключение между источниками, подходящими для Китая (Apt-get, PHP Composer)
  • Простые и понятные компоненты, подходящие для обучения, тестирования и производства
  • Возможно, самый удобный планировщик задач (установлен в компоненте PHP)
  • Хорошая масштабируемость
  • Рациональное разделение структуры (критика Laradock)
Версия и компоненты
  • Текущая версия: 3.0
  • Включенные компоненты: PHP/FPM 7.2, Nginx latest, MySQL 5.7, Redis 4.0
Структура директорий
docker-lnmp
|----/build                  Директория для сборки образов
|----/work                   Директория для хранения данных
|--------/components/        Библиотека компонентов
|------------/component      Компонент, включающий данные, конфигурационные файлы, логи и другие данные для хранения
|-----------------/config    Конфигурационные файлы компонента
|-----------------/log       Логи компонента
|--------/wwwroot            Директория для веб-файлов
|----/.env-example           Пример конфигурационного файла
|----/docker-compose.yml     Конфигурационный файл docker-compose

Начало установки

cd ~/
git clone https://gitee.com/nilsir/docker-lnmp.git    cd docker-lnmp
cp .env-example .env

# Настройка пароля для базы данных, часового пояса, порта и т.д.
vim .env

# Сборка образов и запуск контейнеров
sudo docker-compose up --build -d

После успешного запуска можно перейти по адресу http://localhost

Возможные проблемы

Часто используемые команды
# Просмотр запущенных контейнеров
sudo docker-compose ps

# Запуск части сервисов, добавив имя сервиса, если не указано, запускаются все сервисы, -d запускает в фоновом режиме
sudo docker-compose up [nginx|php72|mysql|redis] -d

# Остановка сервисов аналогично запуску
sudo docker-compose stop [nginx|php72|mysql|redis]

# Удаление всех неактивных контейнеров
sudo docker rm $(docker ps -a -q)

# Удаление всех образов, -f позволяет принудительно удалить
sudo docker rmi $(docker images -q)
Как изменить файлы образа?
# Например, добавить расширение в PHP
# 1. Изменить соответствующий файл docker-lnmp/build/php72/dockerfile
# 2. Пересобрать образ
sudo docker-compose build [php72|...]
Как настроить автоматический запуск сервисов при старте системы?
# Редактирование файла автозагрузки при старте системы, добавьте cd /home/your/docker-lnmp && docker-compose up -d
# Обратите внимание, что здесь не используется sudo, так как сама команда выполняется от имени root
sudo vim /etc/rc.local

# Перезагрузка системы для тестирования
sudo reboot
Как подключиться к MySQL и Redis из PHP? ```php
    // Подключение к MySQL
    $user = "root";
    $pass = "DockerLNMP";
    $dbh = new PDO('mysql:host=mysql;dbname=mysql', $user, $pass);
    
    foreach($dbh->query('SELECT * from user') as $row) {
        print_r($row);
    }
```        // Подключение к Redis
    $redis = new Redis();
    $redis->connect('redis', 6379);
    $redis->set("test-key", "hello");
    echo "Сохранённая строка в Redis:: " . $redis->get("test-key");
?>
Как использовать планировщики задач в компонентах PHP?

Создайте файл crontab в директории /work/components/php72/cron.d или используйте встроенные задачи task. Например, для создания плана резервного копирования базы данных, сохраните файлы резервного копирования в директорию backup, которая находится на одном уровне с cron.d. В файле task есть комментарии, которые помогут вам избежать проблем. Не беспокойтесь о том, что задачи планировщика остановятся после перезапуска контейнера, если контейнер продолжает работать, задачи будут выполняться.

Другие проблемы

Если вам нужно обновить версию какого-либо компонента, убедитесь, что вы загружаете соответствующий файл конфигурации и изменяете соответствующие параметры. Например, по умолчанию в файле redis.conf указан IP-адрес 127.0.0.1, что не позволяет PHP-контейнеру подключаться к нему. Необходимо изменить IP-адрес на 0.0.0.0. Также убедитесь, что вы изменяете путь к логам.

Установка Docker и связанных инструментов

1. Установка Docker (можно использовать любую из двух методов)
# 1. Если вы используете Ubuntu, попробуйте выполнить следующую команду для установки, если возникнут проблемы, попробуйте второй метод
apt install docker.io    # 2. Следуйте документации, предоставленной daocloud
# Обратите внимание, что если вы столкнетесь с ошибкой при выполнении команды типа install docker-ce=17.03.1*, выполните команду install docker-ce
https://download.daocloud.io/Docker_Mirror/Docker
2. Установка docker-compose
# Обратите внимание: если вы используете пользователя, отличного от root, команда curl может выдать ошибку "нет разрешения на запись в /usr/local/bin". Вы можете сначала записать файл в текущую директорию, а затем использовать sudo mv для перемещения
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose##### 3. Запуск Docker

sudo service docker start
sudo docker info
4. Настройка ускорителя DockerHub (это просто необходимо)

Ускоритель от Alibaba Cloud: для каждого пользователя есть свой ускоренный адрес, доступен на https://dev.aliyun.com -> [Центр управления] -> [DockerHub] -> настройка ускорителя

Ускоритель от DaoCloud: http://guide.daocloud.io/dcs/daocloud-9153151.html

Ускоритель от Tencent Cloud: https://www.qcloud.com/document/product/457/7207

Лицензия

MIT

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

docker php mysql redis nginx composer... Развернуть Свернуть
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/nilsir-docker-lnmp.git
git@api.gitlife.ru:oschina-mirror/nilsir-docker-lnmp.git
oschina-mirror
nilsir-docker-lnmp
nilsir-docker-lnmp
master