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

OSCHINA-MIRROR/indextank-hg_dnmp

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

HG_DNMP — это аббревиатура, обозначающая набор программного обеспечения: Docker, Nginx, MySQL 5.7 и PHP 7/5.

Но мы не только поддерживаем эту функциональность. HG_DNMP представляет собой полнофункциональную программу установки «под ключ» для DNMP. Она также поддерживает Redis, PostgreSQL, Confluence, Gitlab и другие.

Этот проект можно использовать как в среде разработки, так и в качестве серверной части производственной среды. Кроме того, он является отличным примером для изучения Docker.

В рамках проекта, при условии соблюдения стандартов, мы стараемся использовать разные подходы к написанию кода для облегчения изучения Docker.

Особенности проекта HG_DNMP:

  1. 100% открытый исходный код, основанный на Alpine-образах и соответствующий стандартам Docker.
  2. Используются последние версии Docker.
  3. Поддерживается сосуществование нескольких версий PHP, с возможностью переключения между ними (PHP 5.6, PHP 7.1, PHP 7.2, PHP 7.3, PHP 7.4).
  4. По умолчанию PHP поддерживает формат изображений WebP.
  5. Можно привязать любое количество доменных имён.
  6. Поддерживаются HTTPS и HTTP/2.
  7. Файлы исходного кода PHP, данные MySQL, конфигурационные файлы и файлы журналов могут быть настроены по требованию.
  8. Встроена команда для полной установки расширений PHP.
  9. Поддерживаются популярные расширения PHP, такие как gRPC и Swoole (конкретные расширения можно найти в файле .env для динамической настройки).
  10. Проект успешно применяется в реальных проектах, обеспечивая 100%-ную работоспособность.
  11. После однократной настройки проект работает на Windows, Linux и macOS.
  12. Доступ к проекту ускоряется с помощью bg-sync, что решает проблему медленной работы проектов в среде разработки.

Соглашения:

  1. По умолчанию предоставляются сертификаты для домена *.default.com. Если проект используется в локальной среде разработки, рекомендуется изменить файл hosts на текущем компьютере в соответствии с соглашением. Для использования в производственной среде, после изменения файлов конфигурации в conf/conf.d и выполнения установки, избегайте повторных изменений.

  2. Файлы виртуальных хостов nginx в каталоге conf/conf.d следует удалить или отредактировать перед установкой, чтобы избежать ошибок nginx после установки.

  3. PHP предоставляет два способа создания образов: на основе Debian и Alpine. По умолчанию используется Alpine, но если расширения PHP не поддерживаются в Alpine, можно использовать образ Debian для компоновки. Пример можно найти в docker-compose.yml для php72-debian.

  4. На момент выпуска версия Alpine для PHP 7.4.1 не поддерживает библиотеку GD.

  5. Адреса соглашений:

  6. Чтобы ускорить загрузку из Китая, все пакеты программного обеспечения размещены в корневом каталоге src. Загрузите их с Baidu Pan и поместите в корневой каталог. Ссылка для скачивания: https://pan.baidu.com/s/1dkEz_BZJo1901fxWTFxiXA. Код извлечения: 6eao.

Окончательный эффект демонстрации:

Demo Image

Структура проекта:

Каталог содержит следующие элементы:

../hg_dnmp/
├── build           Файлы сборки проекта
│   ├── certbot
│   ├── confluence
│   ├── gitlab
│   ├── mongo
│   ├── php         Альпийские образы PHP
│   └── redis
├── centos7-optimizer.sh        Скрипт оптимизации для CentOS 7
├── conf                        Конфигурационные файлы
│   ├── conf.d                  Nginx пользовательские каталоги сайтов
│   │   ├── certs               Каталоги сертификатов HTTPS
│   ├── mysql.cnf               Конфигурационный файл MySQL
│   ├── nginx.conf              Конфигурационный файл Nginx
│   ├── php                     Конфигурационный файл PHP
│   └── redis.conf              Конфигурационный файл Redis
├── docker-allip
├── docker-compose-Darwin.yml  Файл docker sync для Mac OS
├── docker-compose-Linux.yml    Файл docker sync для Linux
├── docker-compose.yml
├── docker-sync.yml
├── include
├── logs         Журнальные файлы
├── README.md
├── snapshot
└── src          Исходные файлы установки - сокращение времени установки за счёт предварительной загрузки (если изменяется версия программного обеспечения, рекомендуется заранее загрузить и поместить сюда)

Использование:

  1. Установите git, docker и docker-compose.

Пользователи CentOS 7 могут использовать предоставленный скрипт centos7-optimizer.sh для быстрой установки.

  1. Клонируйте проект:

    $ git clone https://gitee.com/indextank/hg_dnmp.git
  2. Если вы не являетесь пользователем root, добавьте текущего пользователя в группу пользователей docker:

    $ sudo gpasswd -a ${USER} docker
  3. Основные команды:

    4.1 Создание и запуск всех контейнеров (-d означает запуск в фоновом режиме):

    $ docker-compose -f docker-compose.yml up -d

    Этот метод не рекомендуется. Рекомендуется запускать соответствующие службы в зависимости от ваших потребностей. Например, запустить nginx и MySQL:

    $ docker-compose up nginx mysql57

    4.2 Запуск и вход в отдельный контейнер:

    $ docker run -it mysql:5.7 /bin/bash

    4.3 Сборка или перестройка сервисов:

    $ docker-compose build php72

    4.4 Запуск|остановка|перезапуск служб:

    $ docker-compose start|stop|restart service1 service2 ...
    или
    $ docker start|stop|restart  service1 service2 ...

    4.5 Вход в командную строку контейнера:

    $ docker-compose exec service bash
    или
    $ docker exec -it service /bin/sh

    4.6 Остановка и удаление контейнеров, сетей, образов и томов:

    $ docker-compose down service1 service2 ...

    4.7 Удаление контейнера:

    $ docker-compose rm containerID

    4.8 Удаление образа:

    $ docker-compose rmi imageID

    4.9 Пакетное удаление контейнеров:

    $ docker container rm $(docker container ls -a -q)

    4.10 Пакетное удаление образов:

    $ docker image rm $(docker image ls -a -q)
    1. Пакетное удаление ненужных образов (все три метода возможны, принудительное удаление возможно после добавления -f):
    docker images | grep none | awk '{print $3}' | xargs docker rmi
    docker rmi $(docker images | grep "^" | awk "{print $3}")
    docker rmi $( docker images -f dangling=true)

    4.12 Установка docker-sync на Mac:

    $ gem install docker-sync
    $ brew install fswatch
    $ brew install unison
    $ brew install eugenmayer/dockersync/unox
    $
    

Примечание: в ответе сохранены оригинальные форматирование и орфография.

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

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

Введение

Описание недоступно Развернуть Свернуть
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

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

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