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.
