天天看點

Win10下Docker容器開發調試EasySwoole

Win10下Docker開發easyswoole

  • 衆所周知swoole不能在win環境下開發,是以會阻擋一部分使用者使用swoole,但也不是不能在win下開發,無非是需要借助工具開發而已(虛拟機、docker、以及win10子系統)

Docker是什麼?

  • Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後釋出到任何流行的 Linux或Windows 機器上,也可以實作虛拟化。容器是完全使用沙箱機制,互相之間不會有任何接口

Win10下的坑

  • 最大的坑是需要win10企業版、教育版或專業版才可以才可以開啟hyper-v虛拟化技術(自行百度開啟)

easyswoole安裝(前提示已安裝好docker)

  • easyswoole官網有兩種安裝方式,一種是docker鏡像拉取(php7.1.30+swoole4.4.12+easyswoole3.x-dev),另一種是dockerFile,可以自定義版本需求(本次使用方式)
  • 建構DockerFile(swoole最新穩定版本+easyswoole3.x測試版,不建議開發使用測試版)
FROM centos:7

#version defined
ENV SWOOLE_VERSION 4.4.17
ENV EASYSWOOLE_VERSION 3.3.4

#install libs
RUN yum install -y curl zip unzip  wget openssl-devel gcc-c++ make autoconf

#install php
RUN yum install -y epel-release
RUN rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
RUN yum clean all
RUN yum update -y
RUN yum install -y php71w-devel php71w-openssl php71w-mbstring

# composer
RUN curl -sS https://getcomposer.org/installer | php \
    && mv composer.phar /usr/bin/composer

# use aliyun composer
RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

# swoole ext
RUN wget https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz -O swoole.tar.gz \
    && mkdir -p swoole \
    && tar -xf swoole.tar.gz -C swoole --strip-components=1 \
    && rm swoole.tar.gz \
    && ( \
    cd swoole \
    && phpize \
    && ./configure --enable-openssl \
    && make \
    && make install \
    ) \
    && sed -i "2i extension=swoole.so" /etc/php.ini \
    && rm -r swoole

# Dir
WORKDIR /easyswoole

# install easyswoole

RUN cd /easyswoole \
    && composer require easyswoole/easyswoole=${EASYSWOOLE_VERSION} \
    && php vendor/bin/easyswoole install

EXPOSE 9501           

複制

  • 找到DockerFile的所在目錄,執行

    docker build -t easyswoole .

Win10下Docker容器開發調試EasySwoole
  • 等待建構dockerFile完成
Win10下Docker容器開發調試EasySwoole
  • 檢視鏡像

    docker images

Win10下Docker容器開發調試EasySwoole
  • 運作鏡像并映射端口

    docker run -ti -p 9501:9501

  • 并執行

    php easyswoole start

    啟動easyswoole架構
Win10下Docker容器開發調試EasySwoole
  • 然後在主控端通路

    127.0.0.1:9501

    即可看到easyswoole運作成功
Win10下Docker容器開發調試EasySwoole

平常容器關閉後,如何啟動easyswoole容器

  • 執行指令

    docker ps -a

    檢視所有容器
  • 執行指令

    docker rename suspicious_jang easyswoole

    重命名容器名稱(友善自己維護)
  • 再次執行指令

    docker ps -a

    檢視所有容器,發現容器名稱已經變更
Win10下Docker容器開發調試EasySwoole
  • 然後使用指令來管理容器

    docker start/stop/restart easyswoole

  • 進入容器

    docker exec -ti easyswoole /bin/bash

    然後執行即可看到效果
Win10下Docker容器開發調試EasySwoole

docker容器目錄挂載本地

  • 執行指令

    docker run -v D:/www/test:/easyswoole -ti -p 9501:9501 easyswoole

    挂載成功并進入目錄
Win10下Docker容器開發調試EasySwoole
  • 然後在容器内删除或者主控端内删除目錄裡面的檔案,會發現同步删除,此時目錄共享完畢,即可在Windows下開發EasySwoole了