swoole-src Docker & Self-Hosted Deployment

GitHub

Coroutine-based concurrency library for PHP

18,908 stars C++ C++ 1 file ยท ~11,633 tokens #concurrency#coroutines#event#php#swoole#websocket
RAW Compose
1. Pull Image (DOCKERHUB) docker pull phpswoole/golang-h2demo
2. Docker Run (1-Click Launch) docker run -d --name swoole-src -p 1521:1521 --restart always phpswoole/golang-h2demo
3. Podman Run podman run -d --name swoole-src -p 1521:1521 --restart always phpswoole/golang-h2demo
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/phpswoole/golang-h2demo:latest
5. ORAS Pull (OCI Artifact) oras pull phpswoole/golang-h2demo
6. Compose Deployment docker compose up -d
scripts/docker-compose.yml
Download .yml
version: '3.4'
services:
  swoole:
    container_name: "swoole"
    image: "phpswoole/php:${PHP_VERSION}"
    volumes:
      - "${SWOOLE_BUILD_DIR}:/swoole-src:rw"
    working_dir: /swoole-src
    ulimits:
      core: -1
    privileged: true
    depends_on:
      - mysql
      - redis
      - pgsql
      - oracle
    dns:
      - 8.8.8.8
      - 1.1.1.1
    environment:
      SWOOLE_BRANCH: "${SWOOLE_BRANCH}"
      TEST_SSH2_HOSTNAME: localhost
      TEST_SSH2_PORT: 22
      TEST_SSH2_USER: swoole_ssh2_test_user
      TEST_SSH2_PASS: swoole_ssh2_test_pass
      TEST_SSH2_AUTH: password
    command: tail -f /etc/group
  mysql:
    container_name: "mysql"
    image: "mysql:latest"
    volumes:
      - ./data/mysql:/var/lib/mysql:rw
      - ./data/run/mysqld:/var/run/mysqld:rw
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: test
      MYSQL_USER: swoole
      MYSQL_PASSWORD: swoole
  pgsql:
    image: postgres:14
    container_name: "pgsql"
    environment:
      POSTGRES_USER: root
      POSTGRES_DB: test
      POSTGRES_PASSWORD: root
  oracle:
    image: gvenzl/oracle-free:slim
    container_name: "oracle"
    environment:
      ORACLE_PASSWORD: oracle
    ports:
      - "1521:1521"
  redis:
    container_name: "redis"
    image: "redis:latest"
    volumes:
      - ./data/redis:/var/lib/redis:rw
      - ./data/run/redis:/var/run/redis:rw
    sysctls:
        net.core.somaxconn: 65535
  httpbin:
    container_name: "httpbin"
    image: "arnaudlacour/httpbin"
  tinyproxy:
    container_name: "tinyproxy"
    image: "kalaksi/tinyproxy"
  golang-h2demo:
    container_name: "golang-h2demo"
    image: "phpswoole/golang-h2demo"
  socks5:
    container_name: "socks5"
    image: "serjs/go-socks5-proxy"
    ports:
      - "1080:1080"
  ftp:
    container_name: "ftp"
    image: "teezily/ftpd"
    environment:
      FTP_USER: admin
      FTP_PASSWORD: admin

  firebirdsql:
    container_name: "firebirdsql"
    image: "firebirdsql/firebird"
    environment:
      - FIREBIRD_ROOT_PASSWORD=root
      - FIREBIRD_USER=test
      - FIREBIRD_PASSWORD=test
      - FIREBIRD_DATABASE=test.fdb
      - FIREBIRD_DATABASE_DEFAULT_CHARSET=UTF8
    volumes:
      - ./data:/var/lib/firebird/data
    ports:
      - "3050:3050"