Install docker engine and docker compose plugin, for more info check: https://docs.docker.com/engine/install/
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-pluginsudo usermod -aG docker ${USER}
reboothttps://github.com/JeroenBoersma/docker-compose-development/tree/development-docker-compose-2/
git clone -b development-docker-compose-2 https://github.com/JeroenBoersma/docker-compose-development.git development
cd development
bin/dev setup
# press enter a few times and read instructions
# default php81
# setup your needs (elasticsearch/rabbitmq/etcetera)
# you can always run this again
# adding to your profile to use `dev` commands
bin/dev profile >> ~/.zshrc # or ~/.bashrc if you use bashIf you just installed zsh and your shell isn't changing to zsh, try logging in and out.
To avoid having the .git from the clone in your workspace, you can optionally move your workspace to your home directory.
cd
dev down --remove-orphans
dev volume rm workspace
mkdir workspace
dev volume workspace workspace
cdw
dev php-change php81 # if that's the default
dev upThis will destroy all current databases
cd
cd development
dev down --remove-orphans
dev volume rm mysql
mkdir mysql
dev volume mysql mysql
dev setup # this will add your user and correct settings (press enter to everything)Comprehensive documentation is available in the docs/ directory.
- Development Commands - All available
devcommands - Hosts and File Structure - Project structure and hostname conventions
- How to Use Different PHP Versions - PHP version switching
- F.A.Q. - Frequently asked questions
- MySQL, MailHog, Redis, and Cronjobs - Core service configuration
- MySQL 8 - MySQL 8 setup and usage
- Elasticsearch - Elasticsearch 6.5.4 and 7.9.1 setup
- OpenSearch - OpenSearch setup and configuration
- OpenSearch Dashboard - OpenSearch Dashboard UI
- MongoDB - MongoDB and mongo-express setup
- RabbitMQ - RabbitMQ message broker setup
- Node.js, NPM, and Yarn - Frontend tooling and package managers
- XDebug - PHP debugging with XDebug
- Varnish - HTTP caching with Varnish
- FTP Server - FTP access to workspace
- Git and SSH Integration - Git commands and SSH key forwarding
- Environment Configuration - .env file and configuration markers
- Docker Volumes - Volume management and persistence
- PHP Extensions - Managing PHP extensions
- Custom Docker Compose Files - Customization with docker-custom.yml
- Customize Docker Containers - Container customization basics
- Monitoring Tools - Container and database monitoring
- Search UI Tools - ElasticVue and Elasticsearch HQ
- Port Reference - Complete port assignments
- Performance Tuning - Optimization techniques
- Backup and Restore - Backup strategies and restore procedures
- Configure Blackfire - Blackfire profiler setup
- Sharing with the World via ngrok - ngrok tunneling
- BeyondCode Expose - Expose server for sharing
- UFW Firewall - Firewall configuration
- Advanced Docker Configuration - UID/GID, build arguments, networks
- Install Other PHP Versions - Installing older PHP versions
- Used Base Images - Docker image references
- Code of Conduct - Contributor guidelines