Kategorien
Docker PHP PHP 7 Symfony

Docker PHP7 und Symfony3 Image mit MySQL und phpMyAdmin

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.