If you need a development environment for Symfony, hosted by Docker, you can use the fazy/apache-symfony docker image to start with, then extend it to your need.

In your Symfony project’s folder add the Dockerfile and docker-compose.yml files.

In the first one, we added mysql and composer, then we used the docker-compose.yml file to mount a local volume to the docker container with file sync.

This way you can code on your machine and test in the docker environment.

The Dockerfile:

FROM fazy/apache-symfony
ADD . /app

RUN    apt-get update \
    && apt-get -yq install \
        mysql-server \
        php5-mysql \
    && rm -rf /var/lib/apt/lists/*

RUN curl -s https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer
ENV COMPOSER_ALLOW_SUPERUSER 1
RUN service mysql start

The docker-compose.yml file:

version: "2"
services:
    site:
        build: .
        ports:
            - "8080:80"
        expose:
            - "80"
        volumes:
          - .:/app

To build the Docker container use:

docker-compose up –build

To start it when it’s down just remove the –build parameter:

docker-compose up

Once is running, you can view it’s ID by running:

docker ps

Now grab the first 3 characters from the id and use them in the next command to be able to log in the running container:

docker exec -t -i ID bash

Finally, to access the Symfony project in your browser, go to http://localhost:8080/app_dev.php and have fun!