This repository contains a Docker-based development environment for Symfony applications.
- Docker
- Docker Compose
- Git
- Clone this repository:
git clone git@github.com:Webanimus/symfony-dev-docker-base.git
cd symfony-dev-docker-base- Start the Docker environment:
docker compose up -d --build- Create a new Symfony project:
docker compose exec php composer create-project symfony/skeleton .
docker compose exec php composer require webapp
docker compose exec php composer require symfony/orm-pack- Set proper permissions:
docker compose exec php chown -R www-data:www-data var- Symfony application: http://localhost:8080
- phpMyAdmin: http://localhost:8081 (database management)
- MailHog: http://localhost:8025 (email testing interface)
Update your .env file with these database credentials:
DATABASE_URL="mysql://symfony:symfony@database:3306/symfony?serverVersion=mariadb-10.11.2"The environment includes the following services:
- PHP (8.2-FPM): PHP service with all necessary extensions for Symfony
- Nginx: Web server
- MariaDB (10.11.2): Database server
- phpMyAdmin: Database management tool
- MailHog: Email testing tool
- Database: symfony
- Username: symfony
- Password: symfony
- Root Password: root
Start the environment:
docker compose up -dStop the environment:
docker compose downAccess PHP container:
docker compose exec php bashInstall Symfony dependencies:
docker compose exec php composer installClear Symfony cache:
docker compose exec php php bin/console cache:clearThe project directory is mounted as a volume in the PHP container. Any changes you make to your local files will be reflected immediately in the container.
- If you encounter permission issues:
docker compose exec php chown -R www-data:www-data var- If Composer runs out of memory:
docker compose exec php php -d memory_limit=-1 /usr/bin/composer install- To view logs:
docker compose logs -f