{"id":13635796,"url":"https://github.com/swoft-cloud/swoft-docker","last_synced_at":"2025-04-27T15:33:48.343Z","repository":{"id":95217702,"uuid":"142520661","full_name":"swoft-cloud/swoft-docker","owner":"swoft-cloud","description":"Docker PHP development environment for swoft","archived":false,"fork":false,"pushed_at":"2018-08-06T16:21:46.000Z","size":63,"stargazers_count":20,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-05T01:04:43.182Z","etag":null,"topics":["docker","docker-compose","php7","swoft"],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/swoft-cloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-07-27T03:01:15.000Z","updated_at":"2024-12-15T10:08:30.000Z","dependencies_parsed_at":"2023-04-09T19:32:19.055Z","dependency_job_id":null,"html_url":"https://github.com/swoft-cloud/swoft-docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swoft-cloud%2Fswoft-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swoft-cloud%2Fswoft-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swoft-cloud%2Fswoft-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swoft-cloud%2Fswoft-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swoft-cloud","download_url":"https://codeload.github.com/swoft-cloud/swoft-docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251162800,"owners_count":21545821,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","php7","swoft"],"created_at":"2024-08-02T00:00:52.069Z","updated_at":"2025-04-27T15:33:43.334Z","avatar_url":"https://github.com/swoft-cloud.png","language":"Dockerfile","funding_links":[],"categories":["Development Setup"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/swoft-cloud/swoft\" target=\"_blank\"\u003e\n        \u003cimg src=\"http://qiniu.daydaygo.top/swoft-logo.png?imageView2/2/w/300\" alt=\"swoft\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n[![Latest Version](https://img.shields.io/badge/beta-v1.0.0-green.svg?maxAge=2592000)](https://github.com/swoft-cloud/swoft/releases)\n[![Build Status](https://travis-ci.org/swoft-cloud/swoft.svg?branch=master)](https://travis-ci.org/swoft-cloud/swoft)\n[![Php Version](https://img.shields.io/badge/php-%3E=7.0-brightgreen.svg?maxAge=2592000)](https://secure.php.net/)\n[![Swoole Version](https://img.shields.io/badge/swoole-%3E=2.1.3-brightgreen.svg?maxAge=2592000)](https://github.com/swoole/swoole-src)\n[![Hiredis Version](https://img.shields.io/badge/hiredis-%3E=0.1-brightgreen.svg?maxAge=2592000)](https://github.com/redis/hiredis)\n[![Swoft Doc](https://img.shields.io/badge/docs-passing-green.svg?maxAge=2592000)](https://doc.swoft.org)\n[![Swoft License](https://img.shields.io/hexpm/l/plug.svg?maxAge=2592000)](https://github.com/swoft-cloud/swoft/blob/master/LICENSE)\n\n**[中文说明](README_CN.md)**\n\n## Introduction\n\nThe first high-performance PHP coroutine full-stack componentization framework based on Swoole native coroutine, built-in coroutine web server and commonly-used coroutine client, resident memory, which has no dependency on PHP-FPM, asynchronous non-blocking IO implementation, similar to synchronous client style of writing to achieve the use of asynchronous clients, without complex asynchronous callback, no tedious yield, similar  Go language coroutines, flexible annotations framework, a powerful global dependency injection container base on annotations, and great service governance , flexible and powerful AOP, PSR specification implementation, etc., could be used to build high-performance Web systems, APIs, middleware, basic services, microservice and so on.\n\n- Base on Swoole extension\n- Built-in HTTP, TCP, WebSocket Server\n- Poweful AOP (Aspect Oriented Programming)\n- Flexible and comprehensive annotations framework\n- Global dependency injection container\n- PSR-7 based HTTP message implementation\n- PSR-14 based event manager\n- PSR-15 based middleware\n- PSR-16 based cache design\n- Scalable high performance RPC\n- Great service governance, fallback, load balance, service registration and discovery\n- Database ORM\n- Universal connection pool\n- Mysql, Redis, RPC, HTTP Coroutine Clients\n- Coroutine driver client and blocking driver client seamlessly switch automatically\n- Coroutine and asynchronous task delivery\n- Custom user process\n- RESTful support\n- Internationalization (i18n) support\n- High performance router\n- Fast and flexible parameter validator\n- Alias mechanism\n- Powerful log component\n- Cross-platform application auto-reload\n\n\n## Document\n\n[**Chinese Document**](https://doc.swoft.org)  \n[**English Document**](https://doc.swoft.org) Not yet, please help us write it.\n\nQQ Group: 548173319/778656850\n\n## Introduction\n\nSwoft-docker is a base on docker-compose service choreography repository that allows you to quickly build a complete swoft environment based on docker containerization.\n\n**Note: locate the directory where the `swoft` project is located so that the `swoft-docker` project and the `swoft` project are in the same directory**\n\n## Environmental Requirements\n\n1. docker engine release 17.06.0+\n\n2. [docker-compose release 1.14.0+](https://github.com/docker/compose/releases/tag/1.14.0)\n\n**reference to: [Compose file version 3 reference](https://docs.docker.com/compose/compose-file/#reference-and-guidelines)**\n\n## Usage\n\n```\n./sync.sh \u003coptions\u003e\nAvailable options:\n   install\t\t Installs docker-sync gem on the host machine.\n   up [services]\t Starts docker-sync and runs docker compose.\n   down\t\t\t Stops containers and docker-sync.\n   bash\t\t\t Opens bash on the workspace.\n   sync\t\t\t Manually triggers the synchronization of files.\n   clean\t\t Removes all files from docker-sync.\n```\n\nCopy `env-example` to `.env`, build the mirror and create the container by running `./sync.sh up`.\n\n## docker for linux\n\nHere, if your operating system is `Linux`, then **recommends** to modify several configuration items under `.env`.\n\n- APP_CODE_PATH_CONTAINER_MODE=:cached\n\n```\ndocker-compose -f docker-compose.yml up\n```\n\n## docker for mac\n\nHere, we use `docker-sync` to solve the problem of disk synchronization under MAC system.\n\n```\n./sync.sh install\n```\n\nHere, if your operating system is `OSX`, then you **must** modify several configuration items under `.env`.\n\n- APP_CODE_PATH_CONTAINER_MODE=:nocopy\n- DOCKER_SYNC_STRATEGY=native_osx\n\n```\n./sync.sh up\n```\n\n## License\n\nSwoft is an open-source software licensed under the [LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswoft-cloud%2Fswoft-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswoft-cloud%2Fswoft-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswoft-cloud%2Fswoft-docker/lists"}