Für die lokale Entwicklung mit Symfony3 und PHP7 habe ich mir das folgende Docker Image zusammengebaut, welches die folgenden Features beinhaltet:
- PHP 7 latest
- Symfony 2 und 3 kompatibel
- MySQL 5.7
- phpMyAdmin 4.5
Mit folgendem docker-compose.yml, können die Docker Images orchestriert werden:
www: image: jakubsacha/symfony-docker:php7-dev volumes: - ".:/var/www/html" ports: - "80:80" db: image: mysql:5.7 ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: 'root' MYSQL_DATABASE: 'db_name' MYSQL_USER: 'user' MYSQL_PASSWORD: 'pw' phpmyadmin: image: corbinu/docker-phpmyadmin links: - db:mysql ports: - 8181:80 environment: MYSQL_USERNAME: 'root' MYSQL_ROOT_PASSWORD: 'root'
Wichtig ist, dass man beachtet, dass das Symfony 3 cache und log Verzeichnis außerhalb des gemounteten lokalen Verzeichnisses anlegt, indem man in der /app/AppKernel.php die folgenden Zeilen einfügt um die Docker Permissions-Probleme zu umgehen:
public function getCacheDir()
{
return sys_get_temp_dir().'/cache/'.$this->getEnvironment();
}
public function getLogDir()
{
return sys_get_temp_dir().'/logs/'.$this->getEnvironment();
}
Danach hat man eine Symfony 3 Applikation auf http://localhost und eine phpMyAdmin Installation auf http://localhost:8181 zu laufen.