diff --git a/.env.dist b/.env.dist index 07cc21e3..ee55e182 100644 --- a/.env.dist +++ b/.env.dist @@ -6,3 +6,6 @@ MYSQL_ROOT_PASSWORD=root MYSQL_DATABASE=mydb MYSQL_USER=user MYSQL_PASSWORD=userpass + +# Timezone +TIMEZONE=Europe/Paris diff --git a/README.md b/README.md index 1e4be16e..ec7a9b23 100644 --- a/README.md +++ b/README.md @@ -22,14 +22,11 @@ Docker-symfony gives you everything you need for developing Symfony application. $ docker-compose up -d ``` -3. Update your system host file (add symfony.dev) +3. Update your system host file (add symfony.local) ```bash - # UNIX only: get containers IP address and update host (replace IP according to your configuration) - $ docker network inspect bridge | grep Gateway - - # unix only (on Windows, edit C:\Windows\System32\drivers\etc\hosts) - $ sudo echo "171.17.0.1 symfony.dev" >> /etc/hosts + # UNIX only: get containers IP address and update host (replace IP according to your configuration) (on Windows, edit C:\Windows\System32\drivers\etc\hosts) + $ sudo echo $(docker network inspect bridge | grep Gateway | grep -o -E '([0-9]{1,3}\.){3}[0-9]{1,3}') "symfony.local" >> /etc/hosts ``` **Note:** For **OS X**, please take a look [here](https://docs.docker.com/docker-for-mac/networking/) and for **Windows** read [this](https://docs.docker.com/docker-for-windows/#/step-4-explore-the-application-and-run-examples) (4th step). @@ -51,10 +48,12 @@ Docker-symfony gives you everything you need for developing Symfony application. # Symfony2 $ sf doctrine:database:create $ sf doctrine:schema:update --force + # Only if you have `doctrine/doctrine-fixtures-bundle` installed $ sf doctrine:fixtures:load --no-interaction # Symfony3 $ sf3 doctrine:database:create $ sf3 doctrine:schema:update --force + # Only if you have `doctrine/doctrine-fixtures-bundle` installed $ sf3 doctrine:fixtures:load --no-interaction ``` @@ -64,12 +63,12 @@ Docker-symfony gives you everything you need for developing Symfony application. Just run `docker-compose up -d`, then: -* Symfony app: visit [symfony.dev](http://symfony.dev) -* Symfony dev mode: visit [symfony.dev/app_dev.php](http://symfony.dev/app_dev.php) -* Logs (Kibana): [symfony.dev:81](http://symfony.dev:81) +* Symfony app: visit [symfony.local](http://symfony.local) +* Symfony dev mode: visit [symfony.local/app_dev.php](http://symfony.local/app_dev.php) +* Logs (Kibana): [symfony.local:81](http://symfony.local:81) * Logs (files location): logs/nginx and logs/symfony -## Customize +## Customize If you want to add optionnals containers like Redis, PHPMyAdmin... take a look on [doc/custom.md](doc/custom.md). @@ -119,7 +118,7 @@ $ docker-compose exec db mysql -uroot -p"root" # F***ing cache/logs folder $ sudo chmod -R 777 app/cache app/logs # Symfony2 -$ sudo chmod -R 777 var/cache var/logs # Symfony3 +$ sudo chmod -R 777 var/cache var/logs var/sessions # Symfony3 # Check CPU consumption $ docker stats $(docker inspect -f "{{ .Name }}" $(docker ps -q)) diff --git a/doc/custom.md b/doc/custom.md index 0d485e2e..39c4a55b 100644 --- a/doc/custom.md +++ b/doc/custom.md @@ -16,7 +16,7 @@ - "8080:80" ``` -2. Visit: [symfony.dev:8080](http://symfony.dev:8080) +2. Visit: [symfony.local:8080](http://symfony.local:8080) ## Add Redis diff --git a/docker-compose.yml b/docker-compose.yml index 686f1fd0..90cd989e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,9 +11,10 @@ services: MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} php: - build: php7-fpm - ports: - - 9000:9000 + build: + context: php7-fpm + args: + TIMEZONE: ${TIMEZONE} volumes: - ${SYMFONY_APP_PATH}:/var/www/symfony - ./logs/symfony:/var/www/symfony/app/logs diff --git a/nginx/Dockerfile b/nginx/Dockerfile index 8011b3ab..0a7c716c 100644 --- a/nginx/Dockerfile +++ b/nginx/Dockerfile @@ -8,8 +8,8 @@ RUN apt-get update && apt-get install -y \ ADD nginx.conf /etc/nginx/ ADD symfony.conf /etc/nginx/sites-available/ -RUN ln -s /etc/nginx/sites-available/symfony.conf /etc/nginx/sites-enabled/symfony -RUN rm /etc/nginx/sites-enabled/default +RUN ln -s /etc/nginx/sites-available/symfony.conf /etc/nginx/sites-enabled/symfony \ +&& rm /etc/nginx/sites-enabled/default RUN echo "upstream php-upstream { server php:9000; }" > /etc/nginx/conf.d/upstream.conf diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 07708308..a9ecf0e5 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -22,7 +22,7 @@ http { gzip on; gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; - include /etc/nginx/sites-available/*; + include /etc/nginx/sites-enabled/*; open_file_cache max=100; } diff --git a/nginx/symfony.conf b/nginx/symfony.conf index 8713f688..f17c5539 100644 --- a/nginx/symfony.conf +++ b/nginx/symfony.conf @@ -1,5 +1,5 @@ server { - server_name symfony.dev; + server_name symfony.local; root /var/www/symfony/web; location / { diff --git a/php7-fpm/Dockerfile b/php7-fpm/Dockerfile index 694838a8..fd5b3fea 100644 --- a/php7-fpm/Dockerfile +++ b/php7-fpm/Dockerfile @@ -1,38 +1,40 @@ -# See https://github.com/docker-library/php/blob/4677ca134fe48d20c820a19becb99198824d78e3/7.0/fpm/Dockerfile -FROM php:7.0-fpm +# See https://github.com/docker-library/php/blob/master/7.1/fpm/Dockerfile +FROM php:7.1-fpm +ARG TIMEZONE MAINTAINER Maxence POUTORD RUN apt-get update && apt-get install -y \ + openssl \ git \ unzip # Install Composer -RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer -RUN composer --version +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ +&& composer --version # Set timezone -RUN rm /etc/localtime -RUN ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime -RUN "date" +RUN ln -snf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime && echo ${TIMEZONE} > /etc/timezone \ +&& printf '[PHP]\ndate.timezone = "%s"\n', ${TIMEZONE} > /usr/local/etc/php/conf.d/tzone.ini \ +&& "date" # Type docker-php-ext-install to see available extensions RUN docker-php-ext-install pdo pdo_mysql # install xdebug -RUN pecl install xdebug -RUN docker-php-ext-enable xdebug -RUN echo "error_reporting = E_ALL" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini -RUN echo "display_startup_errors = On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini -RUN echo "display_errors = On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini -RUN echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini -RUN echo "xdebug.remote_connect_back=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini -RUN echo "xdebug.idekey=\"PHPSTORM\"" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini -RUN echo "xdebug.remote_port=9001" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini - - -RUN echo 'alias sf="php app/console"' >> ~/.bashrc -RUN echo 'alias sf3="php bin/console"' >> ~/.bashrc +RUN pecl install xdebug \ +&& docker-php-ext-enable xdebug \ +&& echo "error_reporting = E_ALL" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ +&& echo "display_startup_errors = On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ +&& echo "display_errors = On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ +&& echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ +&& echo "xdebug.remote_connect_back=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ +&& echo "xdebug.idekey=\"PHPSTORM\"" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ +&& echo "xdebug.remote_port=9001" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini + + +RUN echo 'alias sf="php app/console"' >> ~/.bashrc \ +&& echo 'alias sf3="php bin/console"' >> ~/.bashrc WORKDIR /var/www/symfony