This project leverages Docker and Docker Swarm to create a scalable, highly available, and consistent development, testing, and production environment for web applications. By containerizing services such as Nginx, PHP, MySQL, and Redis, it ensures environment consistency across different stages of development, simplifies deployment processes, and enhances data persistence and security. This approach not only facilitates rapid development and deployment cycles but also addresses challenges related to scalability, data consistency, and system availability, making it an invaluable tool for developers and operations teams aiming for efficient and reliable web application deployment and management.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
What things you need to install the software and how to install them.
docker docker compose
A step by step series of examples that tell you how to get a development environment running.
Clone the repository:
git clone https://github.com/jiangzhangy/docker-swarm-for-php.git
Navigate to the project directory:
cd docker-swarm-for-php cp .env.example .env
Build and run the Docker containers:
docker stack deploy --compose-file docker-compose.yml yourproject
Explain how to set up the necessary environment variables, if any.
MYSQL_VERSION=8.0.36 MYSQL_ROOT_PASSWORD=secret MYSQL_DATABASE=laravel MYSQL_USER=laravel MYSQL_PASSWORD=secret PHP_VERSION=8.2 INSTALL_OPCACHE=true NGINX_VERSION=1.21.1 REDIS_VERSION=6.2.5
Explain how to run the automated tests for this system.
Explain what these tests test and why.
Example
Explain what these tests test and why.
Example
Add additional notes about how to deploy this on a live system using Docker Swarm.
docker stack deploy --compose-file docker-compose.yml yourproject
- Docker - Containerization platform
- Docker Swarm - Native clustering for Docker
- Nginx - HTTP and reverse proxy server
- MySQL - Open-source relational database
- Redis - In-memory data structure store
- PHP - Server-side scripting language
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Name - Initial work - bikeaner
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details.
- Hat tip to anyone whose code was used
- Inspiration
- etc