摘要:即異步非阻塞,,事件驅動。優雅的注解聲明,容器,嚴格遵循規范。鏡像的主要用途官方提供了基于的鏡像。鏡像中已安裝配置好運行的所需組件及依賴。修改鏡像的使得容器啟動時不同時啟動服務,這就不需要要求我們掛載的本地項目必須完全安裝好依賴了。
之前有寫過一篇 Docker 安裝部署 Swoft 的文章,但有些冗余混亂,故重寫作為教程的開篇。要不讀讀看?
Swoft項目:https://github.com/swoft-clou...
Swoft文檔:https://doc.swoft.org/
Swoft鏡像:https://hub.docker.com/r/swof...
首個基于 Swoole 原生協程的新時代 PHP 高性能協程全棧框架,內置協程網絡服務器及常用的協程客戶端,常駐內存,不依賴傳統的 PHP-FPM,全異步非阻塞 IO 實現,以類似于同步客戶端的寫法實現異步客戶端的使用,沒有復雜的異步回調,沒有繁瑣的 yield, 有類似 Go 語言的協程、靈活的注解、強大的全局依賴注入容器、完善的服務治理、靈活強大的 AOP、標準的 PSR 規范實現等等,可以用于構建高性能的Web系統、API、中間件、基礎服務等等。
即異步非阻塞IO,EventLoop,事件驅動。cpu_num 個 worker 即可承載高并發請求,提供協程/異步IO客戶端,數據庫連接池,對象連接池,任務進程池。優雅的注解聲明,IOC/DI容器,嚴格遵循PSR規范。Swoft 鏡像的主要用途
Swoft 官方提供了基于 Debine 的 Docker 鏡像。鏡像中已安裝配置好運行 Swoft 的所需組件及依賴:PHP 7.0+ / Swoole / Composer / Pecl。雖然不使用鏡像從頭安裝部署以上幾項組件也不難,但鏡像內置可以開箱即用,免去了這些略繁瑣的工作,讓我們盡可能快的投入到 Swoft 的開發中去。
此外
Swoft 鏡像與開發的配合如果只是單純的想快速體驗 Swoft,使用 docker run -p 80:80 swoft/swoft 拉取創建容器訪問即可。
如何正確的在 Swoft 項目的開發中使用鏡像呢?如果是要將鏡像好好利用到開發工作中,則需要清楚一下幾點。
鏡像內置完全安裝的 Swoft 框架,但它只是用來快速演示的,并不是要你拿去修改,開發還是要對本地的 Swoft 項目開發。
我們應該做的是將本地的 Swoft 框架 掛載到鏡像的工作目錄 /var/www/swoft 從而替換掉鏡像自帶的,這樣啟動 Swoft服務 就會啟動映射到本地的 Swoft 項目了
鏡像的容器啟動時默認會啟動 Swoft 服務 作為前置進程,這就要求我們在掛載了本地 Swoft 項目時需要保證已完全安裝了各項依賴(github 拉取下來的 Swoft 源碼 并沒有安裝庫依賴,需要使用 Composer install 一下)
好像咬到尾巴了,為了開發需要掛載本地 Swoft 項目到鏡像工作目錄,因為容器啟動時還會一并啟動 Swoft 服務,所以要求掛載的本地 Swoft項目 必須使用 Composer 安裝好依賴,嗯?這不還是得在本地裝 PHP + Composer 嘛,鏡像不是都提供了嘛,重復勞動了。
修改 Swoft 鏡像的 entrypoint 使得 Swoft 容器啟動時不同時啟動 Swoft 服務,這就不需要要求我們掛載的本地 Swoft 項目必須完全安裝好依賴了。
容器創建好后,登入容器 sh,使用鏡像內置的 Composer 安裝依賴
啟動 Swoft 服務
這樣就能充分利用鏡像內置的環境和工具,快樂的開始 Swoft 的開發了工作了,下面給出具體的實例。
Swoft 鏡像的使用前面夸贊了那么多鏡像的便利之處,下面如果不完全把鏡像用到極致那就不太好了 O(∩_∩)O哈哈~
1、首先我們從 github 上拉取最新的 Swoft 源碼到本地
cd ~ && git clone git@github.com:swoft-cloud/swoft.git && cd swoft
2、查看 swoft 鏡像的 Dockerfile
# 在文件尾設定了 entrypoint 命令為 啟動 swoft服務 ENTRYPOINT ["php", "/var/www/swoft/bin/swoft", "start"]
entrypoint 就是我們后面需要改掉的參數
3、直接使用鏡像創建容器
docker run -p 8081:80 #映射宿主機808 -v $(pwd):/var/www/swoft #掛載本地 Swoft 項目到鏡像工作目錄 -it -d #重要 開啟 stdin tty 并以daemon模式運行 --entrypoint="" #重要 覆蓋掉鏡像內設定的 entrypoint 參數 --name my_swoft #容器命令 --privileges=true #賦予權限 swoft/swoft bash
4、使用 docker-compose 更為簡潔
#編輯 docker-compose 編排文件 vim docker-compose.yml #內容修改如下 version: "3" services: swoft: image: swoft/swoft:latest container_name: my_swoft # 給容器自定義個名稱便于管理 #build: ./ ports: - "8081:80" #端口映射 volumes: - ./:/var/www/swoft # 掛載本地swoft項目到鏡像工作目錄 stdin_open: true #打開標準輸出 -i tty: true # 打開 tty 會話 -t privileged: true # 給與權限 比如創建文件夾之類的 #entrypoint: ["php", "/var/www/swoft/bin/swoft", "start"] # 入口啟動命令 即啟動 swoft 服務 entrypoint: ["bash"]
創建容器
docker-compose up -d swoft ./
5、登入容器,安裝依賴,開啟 Swoft 服務
使用3或4創建的Swoft容器,便以 bash 作為啟動的前置進程,而非啟動 Swoft 服務,我們登入容器使用內置的 Composer 安裝依賴后,啟動Swoft服務即可。
docker exec -it my_swoft bash # 安裝框架依賴 composer install # 啟動/停止/重啟 Swoft 服務 php bin/swoft start|stop|restar
6、開啟熱重載,關閉 daemon,讓框架調試信息輸出到 stderr 方便開發調試
編輯本地的 Swoft 項目 .env 文件
# Application APP_DEBUG=true # Server ... AUTO_RELOAD=true ... # Swoole Settings ... DAEMONIZE=0 ...
保存并重新啟動 Swoft服務
小提示:可以使用 PHPStorm IDE 配置 FTP/SFTP 文件改動自動上傳的方式,開發起飛~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30151.html
摘要:即異步非阻塞,,事件驅動。優雅的注解聲明,容器,嚴格遵循規范。鏡像的主要用途官方提供了基于的鏡像。鏡像中已安裝配置好運行的所需組件及依賴。修改鏡像的使得容器啟動時不同時啟動服務,這就不需要要求我們掛載的本地項目必須完全安裝好依賴了。 之前有寫過一篇 Docker 安裝部署 Swoft 的文章,但有些冗余混亂,故重寫作為教程的開篇。要不讀讀看? Swoft項目:https://gith...
摘要:前言是一個在之上構建的一個高性能協程全棧框架,而在里面是一個高級技能,所以在相關的環境安裝上也給許多人造成了很大的困擾,更是如此,本文將通過以一種極其簡單的方式解決運行環境和開發環境的部署。 showImg(https://segmentfault.com/img/bVbeknK?w=512&h=197); 本系列文章將從使用層面介紹 Swoft 框架的使用及業務開發,面向初中級的 P...
摘要:所以呢,為了節省我們的時間,官方提供了一個鏡像包,里面包含了運行環境所需要的各項組件我們只需要下載鏡像并新建一個容器,這個容器就提供了框架所需的所有依賴和環境,將宿主機上的項目掛載到鏡像的工作目錄下,就可以繼續我們的開發或生產工作了。 Swoft 首個基于 Swoole 原生協程的新時代 PHP 高性能協程全棧框架,內置協程網絡服務器及常用的協程客戶端,常駐內存,不依賴傳統的 PHP-...
摘要:所以呢,為了節省我們的時間,官方提供了一個鏡像包,里面包含了運行環境所需要的各項組件我們只需要下載鏡像并新建一個容器,這個容器就提供了框架所需的所有依賴和環境,將宿主機上的項目掛載到鏡像的工作目錄下,就可以繼續我們的開發或生產工作了。 Swoft 首個基于 Swoole 原生協程的新時代 PHP 高性能協程全棧框架,內置協程網絡服務器及常用的協程客戶端,常駐內存,不依賴傳統的 PHP-...
摘要:源碼解讀系列一好難都跑不起來怎么破了解一下唄閱讀框架源碼第一步搞定環境小伙伴剛接觸的時候會感覺壓力有點大更直觀的說法是難開發組是不贊成難這個說法的的代碼都是實現的而又是世界上最好的語言的代碼閱讀起來是很輕松的開發組會用源碼解讀系列博客深 date: 2018-8-01 14:22:17title: swoft| 源碼解讀系列一: 好難! swoft demo 都跑不起來怎么破? doc...
閱讀 3106·2021-11-18 10:02
閱讀 2618·2021-10-13 09:47
閱讀 3034·2021-09-22 15:07
閱讀 791·2019-08-30 15:43
閱讀 1810·2019-08-30 10:59
閱讀 1685·2019-08-29 15:34
閱讀 1703·2019-08-29 15:06
閱讀 439·2019-08-29 13:28