Join 4,000+ others and never miss out on new tips, tutorials, and more.
4.x is outdated, please check the latest version 22.x
Latest version:
pecl install openswoole-22.1.2
Bundle your own Open Swoole Docker images:
FROM php:8.1.0-cli
RUN apt-get update && apt-get install vim -y && \
apt-get install openssl -y && \
apt-get install libssl-dev -y && \
apt-get install wget -y && \
apt-get install git -y && \
apt-get install procps -y && \
apt-get install htop -y
RUN cd /tmp && git clone https://github.com/openswoole/swoole-src.git && \
cd swoole-src && \
git checkout v4.11.0 && \
phpize && \
./configure --enable-openssl --enable-swoole-curl --enable-http2 --enable-mysqlnd && \
make && make install
RUN touch /usr/local/etc/php/conf.d/openswoole.ini && \
echo 'extension=openswoole.so' > /usr/local/etc/php/conf.d/zzz_openswoole.ini
RUN wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_amd64
RUN chmod +x /usr/local/bin/dumb-init
RUN apt-get autoremove -y && rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["/usr/local/bin/dumb-init", "--", "php"]
Save the above content into ./Dockerfile
docker build -f ./Dockerfile -t openswoole-php .
<?php
use Swoole\Http\Server;
use Swoole\Http\Request;
use Swoole\Http\Response;
$server = new Swoole\HTTP\Server("127.0.0.1", 9501);
$server->on("Start", function(Server $server)
{
echo "Swoole http server is started at http://127.0.0.1:9501\n";
});
$server->on("Request", function(Request $request, Response $response)
{
$response->header("Content-Type", "text/plain");
$response->end("Hello World\n");
});
$server->start();
Save the above code into ./server.php
On Linux or MacOS:
docker run --rm -p 9501:9501 -v $(pwd):/app -w /app swoole-php server.php
Or on Windows:
docker run --rm -p 9501:9501 -v C:/YOUR_DIR/:/app -w /app swoole-php server.php
You are able to access the hello world Open Swoole application from http://127.0.0.1:9501/
Interested with Open Swoole? Get Started with Open Swoole now
You are free to build your own Swoole Docker image but there are a few community Swoole Docker images hosted on the hub as well, for example: