Рубрики
Uncategorized

Серия обучающих программ Swift: (1) развертывание Swift с помощью установки Docker

Автор оригинала: David Wong.

Ранее я написал статью об установке и развертывании Swift в Docker, но там была некоторая избыточность и путаница, поэтому я переписал ее как начало урока. Вы хотели бы это прочитать?

Проект Swift: https://github.com/swift -облако… Документация Swift: https://doc.swoft.org/Быстрое зеркало: https://hub. docker .com/r/swift…

Быстрое введение

Первая полнотекстовая платформа PHP новой эры для высокопроизводительной совместной работы, основанная на собственном протоколе Wool, встроенном сетевом сервере совместной работы и широко используемом клиенте совместной работы, резидентной памяти, независимой от традиционного PHP-FPM, полностью асинхронной и неблокирующей реализации ввода-вывода, для обеспечения использования асинхронного клиента аналогично синхронному клиенту, без сложных асинхронных обратных вызовов, без громоздкого выхода, аналогичного языку Go. Языковые протоколы, гибкие аннотации, мощные глобальные контейнеры для внедрения зависимостей, совершенное управление услугами, гибкий и мощный AOP, реализация стандартных спецификаций PSR и т. Д. Могут использоваться для создания высокопроизводительных веб-систем, API, промежуточного программного обеспечения, базовых служб и т. Д.

То есть асинхронный неблокирующий ввод-вывод, цикл событий, управляемый событиями. Работник Cpu_num может выполнять много параллельных запросов, предоставлять параллельный/асинхронный клиент ввода-вывода, пул подключений к базе данных, пул подключений к объектам, пул процессов задач. Элегантное утверждение аннотации, контейнер IOC/DI, строго соответствует спецификации PSR.

Основное использование Swift Mirror

Swift официально предоставляет образ докера на основе Debine. Компоненты и зависимости, необходимые для запуска Swift, устанавливаются и настраиваются в зеркале: PHP 7.0+/Swool/Composer/Pecl. Хотя нетрудно развернуть вышеуказанные компоненты с нуля без использования зеркал, встроенные зеркала можно использовать “из коробки”, устраняя эти утомительные задачи и позволяя нам как можно быстрее инвестировать в разработку Swoft.

в дополнение

Координация деятельности по быстрому отражению и развитию

Если вы просто хотите быстро испытать Swift, используйте docker run-p 80:80 swift/swift pull для создания доступа к контейнеру.

Как правильно использовать зеркало при разработке SWOT-проекта? Если вы хотите эффективно использовать зеркало в разработке, вам нужно знать несколько моментов.

  • В Mirror полностью установлена платформа Swift, но она предназначена только для быстрой демонстрации, а не для модификации, разработки или разработки локальных SWOT-проектов.
  • Что нам следует сделать, так это подключить локальную платформу SWOT к рабочему каталогу зеркала/var/www/swoft, чтобы заменить собственный каталог зеркала, поэтому запуск службы Swoft запустит проект SWOT, сопоставленный с локальным.
  • Зеркальный контейнер по умолчанию запускается с помощью службы Swoft в качестве интерфейсного процесса, что требует от нас полной установки всех зависимостей при монтаже локального проекта Swoft (github, извлеченный из исходного кода Swift, не имеет зависимостей от библиотеки, вам необходимо использовать установку Composer).

Кажется, он кусает за хвост. Для разработки необходимо смонтировать локальный проект Swift в зеркальный рабочий каталог. Поскольку контейнер запустит службу Swift одновременно, требуется, чтобы смонтированный локальный проект Swift установил зависимость с помощью Composer, а? Лучше установить PHP + Composer локально. Зеркала предоставляются не во всех номерах. Это дублирующая работа.

  • Изменение точки входа образа Swift позволяет контейнеру Swift запускать службу Swift в разное время при ее запуске, что не требует, чтобы локальный проект Swoft, который мы монтируем, был полностью установлен с зависимостями.
  • Как только контейнер будет создан, войдите в контейнер SH и установите зависимости с помощью встроенного в зеркало композера
  • Запустите службы Swift

Таким образом, мы можем в полной мере использовать встроенную среду и инструменты зеркала и начать разработку Swift с радостью. Вот несколько конкретных примеров.

Использование Swift-зеркала

Спереди хвалили удобство такого количества зеркал, и следующее было бы не очень хорошо, если бы зеркало не использовалось до крайности полностью. О () О ха-ха~

1. Сначала мы извлекаем последний исходный код SWOT с GitHub на локальный

cd ~ && git clone [email protected]:swoft-cloud/swoft.git && cd swoft

2. Просмотр файла Dockerfile для быстрого зеркального отображения

# The entrypoint command is set at the end of the file to start the swoft service
ENTRYPOINT ["php", "/var/www/swoft/bin/swoft", "start"]

Точка входа-это параметр, который нам нужно изменить позже

3. Создавайте контейнеры непосредственно с помощью зеркал

docker run \
- P 8081:80  Mapping Host 808
- V $(pwd): / var/www/swoft\ Mount local Swoft project to mirror working directory
- It-d\ Importantly opens stdin TTY and runs in daemon mode
- entrypoint="\ Importantly overrides the entrypoint parameters set in the mirror
- name my_swoft container command
- privileges = true\ grant permissions
swoft/swoft bash

4. Используйте docker-compose, чтобы быть более кратким

# Edit docker-compose orchestration file
vim docker-compose.yml
# The contents were amended as follows
version: '3'

services:
    swoft:
       image: swoft/swoft:latest
       Container_name: my_swoft# Customize a name to the container for easy management
       #build: ./
       ports:
         - "8081:80" Port Mapping
       volumes:
         - /: // var/www/swoft # Mount the local swoft project to the mirror working directory
       Stdin_open: true # Open Standard Output-i
       Tty: true # Open TTY session-t
       Privileged: true # grants permissions such as creating folders
       #entrypoint: ["php", "/var/www/swoft/bin/swoft", "start"] # 入口启动命令 即启动 swoft 服务
       entrypoint: ["bash"]

Создать контейнер

docker-compose up -d swoft ./

5. Войдите в контейнер, установите зависимости и откройте службы Swoft. Используя контейнер SWOT, созданный в 3 или 4, мы запускаем службу Swoft с помощью bash вместо запуска службы Swoft. После того, как мы войдем в контейнер и установим зависимости с помощью встроенного композитора, мы сможем запустить службу Swift.

docker exec -it my_swoft bash
# Installation Framework Dependency
composer install
# Start/Stop/Restart Swoft Service
php bin/swoft start|stop|restar

6. Включите горячую перегрузку и закройте демон, чтобы отладочная информация о кадре могла быть экспортирована в stderr для облегчения разработки и отладки. Отредактируйте локальный проект SWOT. файл env

# Application
APP_DEBUG=true
# Server
...
AUTO_RELOAD=true
...
# Swoole Settings
...
DAEMONIZE=0
...

Сохраните и перезапустите службы Swift

Совет: Вы можете использовать среду разработки PhpStorm для настройки файлов FTP/SFTP, чтобы изменить способ автоматической загрузки и запуска разработки.~