Я уже писал статью об установке и развертывании swift в docker, но есть некоторая избыточность и путаница, поэтому я переписываю ее как начало урока. Вы хотите это прочитать?
Проект Swift: https://github.com/swoft-clou Документация Swift: https://doc.swoft.org/Быстрое изображение: https://hub.docker.com/r/swof
Быстрое введение
Первая высокопроизводительная платформа полного стека PHP, основанная на собственной оркестровке swool в новую эпоху, со встроенным сетевым сервером оркестровки и широко используемым клиентом оркестровки, резидентная в памяти, независимая от традиционного php-fpm, полностью асинхронная реализация неблокирующего ввода-вывода, асинхронное использование на стороне клиента аналогично синхронной записи на стороне клиента, без сложного асинхронного обратного вызова, без утомительного выхода, аналогично языку go, Его можно использовать для создания высокопроизводительных веб-систем, API, промежуточного программного обеспечения, базовых служб и т. Д.
Асинхронный неблокирующий ввод-вывод, цикл событий, управляемый событиями. Работники с числом ЦП могут выполнять много параллельных запросов и предоставлять клиенты совместного процесса/асинхронного ввода ﹣ вывода, пулы подключений к базе данных, пулы подключений к объектам и пулы процессов задач. Элегантное заявление с аннотацией, контейнер IOC/di, строго соответствующий спецификации PSR.
Основные виды использования swift-изображения
Программное обеспечение официально предоставляет образ докера на основе debine. Необходимые компоненты и зависимости для запуска swift установлены в образе: PHP 7.0 +/swool/composer/PECL. Хотя нетрудно развернуть вышеуказанные компоненты с нуля без использования образа, встроенный образ можно использовать “из коробки”, устраняя эти несколько громоздкие работы, поэтому мы можем инвестировать в разработку swoft как можно скорее.
в дополнение
Сотрудничество между изображением программного обеспечения и разработкой
Если вы просто хотите быстро освоить swoft, просто используйте docker run – P 80:80 swoft/swoft для создания доступа к контейнеру.
Как правильно использовать изображение при разработке программного проекта? Если вы хотите эффективно использовать изображение в процессе разработки, вам нужно четко уяснить несколько моментов.
- Образ встроенного полностью установленного программного обеспечения, но он предназначен только для быстрой демонстрации, а не для изменения, разработки или разработки локального программного проекта.
- Что нам нужно сделать, так это смонтировать локальную платформу swoft в рабочий каталог образа/var/www/swoft, чтобы заменить собственный образ, чтобы запуск службы swoft запустил сопоставление с локальным проектом swoft
- Когда контейнер образа запустится, он запустит службу swoft в качестве предварительного процесса по умолчанию, что требует, чтобы мы убедились, что все зависимости были полностью установлены при монтаже локального проекта swoft (исходный код swoft, извлеченный GitHub, не имеет зависимости от библиотеки установки, поэтому нам нужно использовать composer install).
Кажется, он кусает за хвост. Для разработки вам необходимо смонтировать локальный проект swift в рабочий каталог образа. Потому что контейнер запустит службу swift одновременно, поэтому локальный проект swift, который вам нужно смонтировать, должен использовать composer для установки зависимости, да? По-прежнему необходимо установить PHP + composer локально. Изображения предоставляются, и работа повторяется.
- Измените точку входа образа swoft, чтобы служба swoft не запускалась одновременно с запуском контейнера swoft, что не требует полной установки локального проекта swoft, который мы монтируем.
- После создания контейнера войдите в контейнер SH и используйте встроенный составитель образа для установки зависимости
- Запустите службу swift
Таким образом, мы можем в полной мере использовать встроенную среду и инструменты изображения и начать разработку swift с радостью. Есть конкретные примеры.
Использование изображения swift
Преимущества такого количества изображений восхваляются спереди. Если вы не используете изображение до крайности, это не очень хорошо. О (∩∩∩∩∩∩∩∩∩∩∩∩∩∩∩~
1. Сначала мы извлекаем последний исходный код программного обеспечения с GitHub на локальный
cd ~ && git clone [email protected]:swoft-cloud/swoft.git && cd swoft
2. Просмотр файла настройки изображения swift
#Set the entrypoint command 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 \ 3535; mount the local swoft project to the image working directory -It - D \ important to turn on stdin TTY and run it in daemon mode --Entrypoint = \ \ important override the entrypoint parameter set in the image --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 content is modified as follows version: '3' services: swoft: image: swoft/swoft:latest Container name: my swoft customize a name for the container to facilitate management #build: ./ ports: -"8081:80"? Port mapping volumes: -. /: / var / www / swoft ා mount the local swoft project to the image working directory Stdin? Open: true? Open standard output - I TTY: true ා open TTY session-t Privileged: true ා give permissions such as creating folders #Entrypoint: ["PHP", "/ var / www / swoft / bin / swoft", "start"]. The entry start command starts the swoft service entrypoint: ["bash"]
Создать контейнер
docker-compose up -d swoft ./
5. Войдите в контейнер, установите зависимость и запустите службу swoft, используя 3 или 4 для создания контейнера swoft, Bash используется в качестве предварительного процесса для запуска вместо службы swoft. После входа в контейнер и использования встроенного композитора для установки зависимости мы можем запустить службу swift.
docker exec -it my_swoft bash #Installation framework dependency composer install #Start / stop / restart the software service php bin/swoft start|stop|restar
6. Включите горячую перегрузку, выключите демона и позвольте отладочной информации фреймворка выводиться в stderr для разработки и отладки локального проекта swoft. Файл Env
# Application APP_DEBUG=true # Server ... AUTO_RELOAD=true ... # Swoole Settings ... DAEMONIZE=0 ...
Сохраните и перезапустите службу программного обеспечения
Совет: вы можете использовать среду разработки phpstorm для настройки файла FTP/SFTP, чтобы изменить способ автоматической загрузки и разработать взлет~