All Projects → swoole → Docker Swoole

swoole / Docker Swoole

Licence: apache-2.0
🏄 Official Docker Image of Swoole

Projects that are alternatives of or similar to Docker Swoole

swoole-server-bundle
No description or website provided.
Stars: ✭ 15 (-94.77%)
Mutual labels:  swoole
design-patterns
👨🏻‍💻 Swoole微课程-PHP设计模式相关代码
Stars: ✭ 51 (-82.23%)
Mutual labels:  swoole
Framework
Swoole, PSR-15, PSR-7, PSR-11 lightweight modular anti-framework for REST micro-services.
Stars: ✭ 259 (-9.76%)
Mutual labels:  swoole
swoole
FastD Swoole 基础组件
Stars: ✭ 76 (-73.52%)
Mutual labels:  swoole
PHPMailer-Swoole
安装最新版Swoole,开启一键协程化,使用原版phpmailer就可以实现协程化了。本项目已经没有维护下去的意义。
Stars: ✭ 25 (-91.29%)
Mutual labels:  swoole
swoole-futures
⏳ Futures, Streams & Async/Await for PHP's Swoole asynchronous run-time.
Stars: ✭ 100 (-65.16%)
Mutual labels:  swoole
phpshow
phpshow,简单易用的php框架
Stars: ✭ 14 (-95.12%)
Mutual labels:  swoole
Manaphp
ManaPHP Framework: Swoole+FPM
Stars: ✭ 271 (-5.57%)
Mutual labels:  swoole
php7-alpine
Docker container for PHP 7 in Alpine Linux, with almost all extensions that you may need
Stars: ✭ 20 (-93.03%)
Mutual labels:  swoole
swoole api framework 2
swoole
Stars: ✭ 20 (-93.03%)
Mutual labels:  swoole
yii2-websocket
基于swoole的websocket
Stars: ✭ 31 (-89.2%)
Mutual labels:  swoole
gene
Grace, fastest, flexibility, simple PHP extension framework!优雅、极速、灵活、简单的PHP扩展框架!
Stars: ✭ 30 (-89.55%)
Mutual labels:  swoole
docker-laravel-appengine
Laravel dockerized with official Google App Engine flexible php environment + swoole.
Stars: ✭ 66 (-77%)
Mutual labels:  swoole
chat
php+swoole+vue实现的在线IM
Stars: ✭ 29 (-89.9%)
Mutual labels:  swoole
Swoole Wiki
📖Swoole全量Markdown文档, Swoole-Doc, Swoole-Wiki
Stars: ✭ 261 (-9.06%)
Mutual labels:  swoole
swoole-postgresql-doctrine-driver
🔌 A Doctrine DBAL Driver implementation on top of Swoole Coroutine PostgreSQL client
Stars: ✭ 15 (-94.77%)
Mutual labels:  swoole
octane
Supercharge your Laravel application's performance.
Stars: ✭ 3,038 (+958.54%)
Mutual labels:  swoole
Awesome Swoole
A curated list of Swoole
Stars: ✭ 283 (-1.39%)
Mutual labels:  swoole
Hyperf Admin
Hyperf-admin 基于Hyperf、Element-UI 通用管理后台
Stars: ✭ 267 (-6.97%)
Mutual labels:  swoole
sw crontab
基于swoole的定时器程序,支持秒级处理,去中心化架构,可横向扩展
Stars: ✭ 24 (-91.64%)
Mutual labels:  swoole

Docker Image for Swoole

Tests Docker Pulls License

This image is built for general-purpose. We have different examples included in this Git repository to help developers to get familiar with the image and Swoole.

You can get the image from here.

Supported Tags and Respective Dockerfile Links

Versioned images (based on stable releases of Swoole)

Swoole 4.6

PHP Versions Default Images Dev Images Alpine Images
PHP 8.0 4.6.4-php8.0, 4.6-php8.0
4.6, latest
4.6.4-php8.0-dev, 4.6-php8.0-dev
4.6-dev, latest-dev
4.6.4-php8.0-alpine, 4.6-php8.0-alpine
4.6-alpine, latest-alpine
PHP 7.4 4.6.4-php7.4, 4.6-php7.4 4.6.4-php7.4-dev, 4.6-php7.4-dev 4.6.4-php7.4-alpine, 4.6-php7.4-alpine
PHP 7.3 4.6.4-php7.3, 4.6-php7.3 4.6.4-php7.3-dev, 4.6-php7.3-dev 4.6.4-php7.3-alpine, 4.6-php7.3-alpine
PHP 7.2 4.6.4-php7.2, 4.6-php7.2 4.6.4-php7.2-dev, 4.6-php7.2-dev 4.6.4-php7.2-alpine, 4.6-php7.2-alpine

Swoole 4.5

PHP Versions Default Images Dev Images Alpine Images
PHP 8.0 4.5.11-php8.0, 4.5-php8.0
4.5
4.5.11-php8.0-dev, 4.5-php8.0-dev
4.5-dev
4.5.11-php8.0-alpine, 4.5-php8.0-alpine
4.5-alpine
PHP 7.4 4.5.11-php7.4, 4.5-php7.4 4.5.11-php7.4-dev, 4.5-php7.4-dev 4.5.11-php7.4-alpine, 4.5-php7.4-alpine
PHP 7.3 4.5.11-php7.3, 4.5-php7.3 4.5.11-php7.3-dev, 4.5-php7.3-dev 4.5.11-php7.3-alpine, 4.5-php7.3-alpine
PHP 7.2 4.5.11-php7.2, 4.5-php7.2 4.5.11-php7.2-dev, 4.5-php7.2-dev 4.5.11-php7.2-alpine, 4.5-php7.2-alpine
PHP 7.1 4.5.11-php7.1, 4.5-php7.1 4.5.11-php7.1-dev, 4.5-php7.1-dev 4.5.11-php7.1-alpine, 4.5-php7.1-alpine

Swoole 4.4

PHP Versions Default Images Dev Images Alpine Images
PHP 7.4 4.4.24-php7.4, 4.4-php7.4
4.4
4.4.24-php7.4-dev, 4.4-php7.4-dev
4.4-dev
4.4.24-php7.4-alpine, 4.4-php7.4-alpine
4.4-alpine
PHP 7.3 4.4.24-php7.3, 4.4-php7.3 4.4.24-php7.3-dev, 4.4-php7.3-dev 4.4.24-php7.3-alpine, 4.4-php7.3-alpine
PHP 7.2 4.4.24-php7.2, 4.4-php7.2 4.4.24-php7.2-dev, 4.4-php7.2-dev 4.4.24-php7.2-alpine, 4.4-php7.2-alpine
PHP 7.1 4.4.24-php7.1, 4.4-php7.1 4.4.24-php7.1-dev, 4.4-php7.1-dev 4.4.24-php7.1-alpine, 4.4-php7.1-alpine

Nightly images (built daily using the master branch of swoole-src)

PHP Versions Default Images Dev Images Alpine Images
PHP 8.0 php8.0 php8.0-dev php8.0-alpine
PHP 7.4 php7.4 php7.4-dev php7.4-alpine
PHP 7.3 php7.3 php7.3-dev php7.3-alpine
PHP 7.2 php7.2 php7.2-dev php7.2-alpine

Tagging the Images

All three types of images are built using the official PHP images as base images:

1. phpswoole/swoole:latest: This type of images is built based on the php:cli images, with a few changes. It uses Supervisord to manage booting processes, and has Composer preinstalled.

2. phpswoole/swoole:latest-dev: This image is very similar to image phpswoole/swoole:latest, but it has extra tools added for testing, debugging, and monitoring purpose, including gdb, git, lsof, strace, tcpdump, Valgrind, and vim.

3 phpswoole/swoole:latest-alpine: You can use it in the same way as using the php:alpine image, except that we changed the default working directory to /var/www. Also, we have Composer preinstalled in the image.

NOTE:

  1. We don't have development tools built in for Alpine images. There is no Docker images like phpswoole/swoole:4.6.4-php8.0-alpine-dev.
  2. PHP-X and Swoole extensions are not installed by default. Please check section "Examples" below to see how to install them manually.

Feature List

  • Built-in scripts to manage Swoole extensions and Supervisord programs.
  • Easy to manage booting scripts in Docker.
  • Allow running PHP scripts and other commands directly in different environments (including ECS).
  • Use one root filesystem for simplicity (one Docker COPY command only in dockerfiles).
  • Composer included (Composer v1 for Swoole 4.5.8 and before; Composer v2 for Swoole 4.5.9 and after).
  • Built for different architectures.
  • Support auto-reloading for local development.
  • Support code debugging for local development.

Examples

Following examples are for non-Alpine images only. We don't have examples included for the Alpine images.

You can use the image to serve an HTTP/WebSocket server, or run some one-off command with it. e.g.,

docker run --rm phpswoole/swoole "php -m"
docker run --rm phpswoole/swoole "php --ri swoole"
docker run --rm phpswoole/swoole "composer --version"

We have various examples included under folder "examples/" to help developers better use the image. These examples are numerically ordered. Each example has a docker-compose.yml file included, along with some other files. To run an example, please start Docker containers using the docker-compose.yml file included, then check HTTP output from URL http://127.0.0.1 unless otherwise noted. You may use the following commands to start/stop/restart Docker containers:

./bin/example.sh start   00 # To start container(s) of the first example.
./bin/example.sh stop    00 # To stop container(s) of the first example.
./bin/example.sh restart 00 # To restart container(s) of the first example.

To run another example, just replace the last command line parameter 00 with an example number (e.g., 05).

Here is a list of the examples under folder "examples/":

  • Basic examples:
    • 00-autoload: Restart the Swoole web server automatically if file changes detected under web root.
    • 01-basic: print out "Hello, World!" using Swoole as backend HTTP server.
    • 02-www: to use some customized PHP script(s) in the Docker image built.
    • 03-nginx: to use Swoole behind an Nginx server.
    • 04-entrypoint: to use a self-defined entrypoint script in the Docker image built.
    • 05-boot: to update content in the Docker container through a booting script.
    • 06-update-token: to show how to update server configurations with built-in script update-token.sh.
    • 07-disable-default-server: Please check the docker-compose.yml file included to see show how to disable the default web server created with Swoole.
  • Manage PHP extensions and configurations:
    • 10-install-php-extension: how to install/enable PHP extensions.
    • 11-customize-extension-options: how to overwrite/customize PHP extension options.
    • 12-php.ini: how to overwrite/customize PHP options.
    • 13-install-swoole-extension: Please check the README file included to see how to install Swoole extensions like async, orm, postgresql, and serialize.
    • 14-install-phpx: Please check the README file included to see how to install PHP-X.
    • 15-install-phpx-extension: Please check the README file included to see how to install PHP-X based extensions like zookeeper.
  • Manage Supervisord programs:
    • 20-supervisord-services: to show how to run Supervisord program(s) in Docker.
    • 21-supervisord-tasks: to show how to run Supervisord program(s) when launching a one-off command with Docker. Please check the README file included to see how to run the example.
    • 22-supervisord-enable-program: to show how to enable program(s) in Supervisord program.
    • 23-supervisord-disable-program: to show how to disable Supervisord program(s).
  • Debugging:
    • 30-debug-with-gdb: Please check the README file included to see how to debug your PHP code with gdb.
    • 31-debug-with-valgrind: Please check the README file included to see how to debug your PHP code with Valgrind.
    • 32-debug-with-strace: Please check the README file included to see how to debug your PHP code with strace.
    • 33-debug-with-blackfire: Please check the README file included to see how to debug your PHP code with Blackfire.
    • 34-debug-with-sdebug: Please check the README file included to see how to debug your PHP code in different ways with sdebug (forked from Xdebug to work with Swoole).

Build Images Manually

The Docker images are built and pushed out automatically through Travis. If you want to build some image manually, please follow these three steps.

1. Install Composer packages. If you have command "composer" installed already, just run composer update -n.

2. Use commands like following to create dockerfiles:

./bin/generate-dockerfiles.php latest # Generate dockerfiles to build images from the master branch of Swoole.
./bin/generate-dockerfiles.php 4.6.4  # Generate dockerfiles to build images for Swoole 4.6.4.

3. Build Docker images with commands like:

docker build -t phpswoole/swoole                     -f dockerfiles/latest/php8.0/cli/Dockerfile   .
docker build -t phpswoole/swoole:4.6.4-php8.0        -f dockerfiles/4.6.4/php8.0/cli/Dockerfile    .
docker build -t phpswoole/swoole:4.6.4-php8.0-alpine -f dockerfiles/4.6.4/php8.0/alpine/Dockerfile .

To build development images (where extra tools are included), add an argument DEV_MODE:

docker build --build-arg DEV_MODE=true -t phpswoole/swoole:latest-dev       -f dockerfiles/latest/php8.0/cli/Dockerfile .
docker build --build-arg DEV_MODE=true -t phpswoole/swoole:4.6.4-php8.0-dev -f dockerfiles/4.6.4/php8.0/cli/Dockerfile  .

Credits

Current implementation borrows ideas from Demin's work at Glu Mobile.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].