From c2d6cf476c84c5aefd47c33b1bf5d7162f62c638 Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Thu, 10 Mar 2016 15:05:09 -0500 Subject: [PATCH 01/16] Added max_allowed_packet to mysql configuration --- generators/app/templates/conf/mysql.cnf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/generators/app/templates/conf/mysql.cnf b/generators/app/templates/conf/mysql.cnf index a83a37b..82d7aea 100644 --- a/generators/app/templates/conf/mysql.cnf +++ b/generators/app/templates/conf/mysql.cnf @@ -22,6 +22,8 @@ explicit_defaults_for_timestamp # localhost which is more compatible and is not less secure. bind-address = 0.0.0.0 +max_allowed_packet = 128M + #log-error = /var/log/mysql/error.log # Recommended in standard MySQL setup From dfa5ad733977b6c38a85a25a0cd3bd53425eacad Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Thu, 28 Apr 2016 13:18:03 -0400 Subject: [PATCH 02/16] Increase client_max_body_size for nginx --- generators/app/templates/conf/nginx.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/generators/app/templates/conf/nginx.conf b/generators/app/templates/conf/nginx.conf index 5e29969..7838000 100644 --- a/generators/app/templates/conf/nginx.conf +++ b/generators/app/templates/conf/nginx.conf @@ -1,6 +1,8 @@ # http://wiki.nginx.org/Symfony # http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html +client_max_body_size 100m; + upstream phpfcgi { server phpfpm:9000; # server unix:/var/run/php5-fpm.sock; #for PHP-FPM running on UNIX socket From 8e1f661ca9fc116f530bb7ada7603f9aeeee0f77 Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Mon, 2 May 2016 09:58:58 -0400 Subject: [PATCH 03/16] Store the ssh port number per-project --- generators/app/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/generators/app/index.js b/generators/app/index.js index 68cb76b..5bf51ce 100644 --- a/generators/app/index.js +++ b/generators/app/index.js @@ -69,7 +69,8 @@ module.exports = yeoman.generators.Base.extend({ type: 'input', name: 'portNumber', message: 'Enter your project\'s ssh port number.', - default: '22' + default: '22', + store: true } ]; this.prompt(aliasPrompts, function (props) { From 0d679edd01fcab89d047fe19b6940db61750cd3f Mon Sep 17 00:00:00 2001 From: Thomas Dustin Harrell Date: Fri, 1 Jul 2016 14:01:04 -0400 Subject: [PATCH 04/16] added shell alias for pull-files allowing us to sync live files dir to local --- .../app/templates/drush-alias/placeholder.aliases.drushrc.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/generators/app/templates/drush-alias/placeholder.aliases.drushrc.php b/generators/app/templates/drush-alias/placeholder.aliases.drushrc.php index ccf1a49..ca5feef 100644 --- a/generators/app/templates/drush-alias/placeholder.aliases.drushrc.php +++ b/generators/app/templates/drush-alias/placeholder.aliases.drushrc.php @@ -17,3 +17,6 @@ 'root' => '/var/www/<%= aliasName %>.boi/www', 'uri' => 'http://<%= aliasName %>.boi', ); + +// Sync files from master to _local +$options['shell-aliases']['pull-files'] = '!drush rsync @<%= aliasName %>.master:%files/ @<%= aliasName %>._local:%files'; From 9480b50395f72263bddc983c15dbb32aea6dbc0a Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Fri, 23 Sep 2016 16:45:54 -0400 Subject: [PATCH 05/16] Switched containers to alpine base images to trim the fat --- generators/app/index.js | 16 ------- generators/app/templates/conf/fpm.conf | 20 --------- generators/app/templates/conf/mysql.cnf | 38 ---------------- generators/app/templates/conf/nginx.conf | 41 ----------------- generators/app/templates/conf/php.ini | 26 ----------- generators/app/templates/docker-compose.yml | 11 ++--- .../app/templates/images/php/Dockerfile | 45 ------------------- 7 files changed, 3 insertions(+), 194 deletions(-) delete mode 100644 generators/app/templates/conf/fpm.conf delete mode 100644 generators/app/templates/conf/mysql.cnf delete mode 100644 generators/app/templates/conf/nginx.conf delete mode 100644 generators/app/templates/conf/php.ini delete mode 100644 generators/app/templates/images/php/Dockerfile diff --git a/generators/app/index.js b/generators/app/index.js index 5bf51ce..ab62868 100644 --- a/generators/app/index.js +++ b/generators/app/index.js @@ -97,22 +97,6 @@ module.exports = yeoman.generators.Base.extend({ } ); - // Create compose/conf folder and files. - this.fs.copyTpl( - this.templatePath('conf/*'), - this.destinationPath('compose/conf'), - { - projectName: this.props.projectName, - hostIP: this.props.hostIP - } - ); - - // Create compose/images folder and files. - this.fs.copy( - this.templatePath('images'), - this.destinationPath('compose/images') - ); - // Create drush aliases based on user input. if (this.setupAliases) { this.fs.copyTpl( diff --git a/generators/app/templates/conf/fpm.conf b/generators/app/templates/conf/fpm.conf deleted file mode 100644 index dbac630..0000000 --- a/generators/app/templates/conf/fpm.conf +++ /dev/null @@ -1,20 +0,0 @@ -[global] -error_log = /proc/self/fd/2 -daemonize = no - -[www] -# BOOT2DOCKER LIMITATIONS -user = root -group = root - -# SYMFONY 2 REQUIREMENTS -php_admin_value[date.timezone] = 'America/New_York' -php_admin_flag[short_open_tag] = off - -access.log = /proc/self/fd/2 -listen = [::]:9000 -pm = ondemand -pm.max_children = 2 -pm.start_servers = 2 -pm.min_spare_servers = 1 -pm.max_spare_servers = 2 diff --git a/generators/app/templates/conf/mysql.cnf b/generators/app/templates/conf/mysql.cnf deleted file mode 100644 index 82d7aea..0000000 --- a/generators/app/templates/conf/mysql.cnf +++ /dev/null @@ -1,38 +0,0 @@ -[client] -port = 3306 -socket = /var/run/mysqld/mysqld.sock - -[mysqld_safe] -pid-file = /var/run/mysqld/mysqld.pid -socket = /var/run/mysqld/mysqld.sock -nice = 0 - -[mysqld] -user = root -pid-file = /var/run/mysqld/mysqld.pid -socket = /var/run/mysqld/mysqld.sock -port = 3306 -basedir = /usr -datadir = /var/lib/mysql -tmpdir = /tmp -lc-messages-dir = /usr/share/mysql -explicit_defaults_for_timestamp - -# Instead of skip-networking the default is now to listen only on -# localhost which is more compatible and is not less secure. -bind-address = 0.0.0.0 - -max_allowed_packet = 128M - -#log-error = /var/log/mysql/error.log - -# Recommended in standard MySQL setup -sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES - -# Disabling symbolic-links is recommended to prevent assorted security risks -symbolic-links=0 - -# * IMPORTANT: Additional settings that can override those from this file! -# The files must end with '.cnf', otherwise they'll be ignored. -# -!includedir /etc/mysql/conf.d/ diff --git a/generators/app/templates/conf/nginx.conf b/generators/app/templates/conf/nginx.conf deleted file mode 100644 index 7838000..0000000 --- a/generators/app/templates/conf/nginx.conf +++ /dev/null @@ -1,41 +0,0 @@ -# http://wiki.nginx.org/Symfony -# http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html - -client_max_body_size 100m; - -upstream phpfcgi { - server phpfpm:9000; - # server unix:/var/run/php5-fpm.sock; #for PHP-FPM running on UNIX socket -} - -server { - listen 80 default_server; - listen [::]:80 default_server ipv6only=on; - - root /var/www/html/www; - - # strip index.php/ prefix if it is present - rewrite ^/index\.php/?(.*)$ /$1 permanent; - - location / { - index index.php; - try_files $uri @rewriteapp; - } - - location @rewriteapp { - rewrite ^(.*)$ /index.php/$1 last; - } - - # pass the PHP scripts to FastCGI server from upstream phpfcgi - location ~ ^/(index|install|core/install)\.php(/|$) { - fastcgi_pass phpfcgi; - fastcgi_split_path_info ^(.+\.php)(/.*)$; - include fastcgi_params; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param HTTPS off; - # Allow access to /app_dev.php & /config.php - fastcgi_param REMOTE_ADDR 127.0.0.1; - fastcgi_param <%= projectName %> "<%= projectName %>"; - fastcgi_param PHP_IDE_CONFIG "serverName=<%= projectName %>"; - } -} diff --git a/generators/app/templates/conf/php.ini b/generators/app/templates/conf/php.ini deleted file mode 100644 index 8f6bc3f..0000000 --- a/generators/app/templates/conf/php.ini +++ /dev/null @@ -1,26 +0,0 @@ -memory_limit=512M -upload_max_filesize=100M -post_max_size=100M - -[xdebug] -zend_extension=xdebug.so -xdebug.max_nesting_level=256 -xdebug.remote_enable=1 -xdebug.remote_autostart=0 -xdebug.remote_connect_back=0 -xdebug.remote_host=<%= hostIP %> -xdebug.remote_port=9001 -xdebug.remote_log=/tmp/php5-xdebug.log - -;[xhprof] -;extension=xhprof.so -;xhprof.output_dir=/var/platform/xhprof - -[opcache] -opcache.enable=1 -opcache.memory_consumption=192 -opcache.interned_strings_buffer=16 -opcache.max_accelerated_files=4000 -opcache.fast_shutdown=1 -opcache.validate_timestamps=1 -opcache.revalidate_freq=0 diff --git a/generators/app/templates/docker-compose.yml b/generators/app/templates/docker-compose.yml index 9641881..0c9862b 100644 --- a/generators/app/templates/docker-compose.yml +++ b/generators/app/templates/docker-compose.yml @@ -3,25 +3,20 @@ # ports: # - "6379" phpfpm: - command: php-fpm --allow-to-run-as-root - build: compose/images/php + image: blueoakinteractive/php-fpm:5.6-dev volumes: - - /var/www/<%= projectName %>/compose/conf/fpm.conf:/usr/local/etc/php-fpm.conf - /var/www/<%= projectName %>:/var/www/html - - /var/www/<%= projectName %>/compose/conf/php.ini:/usr/local/etc/php/conf.d/local.ini links: - mysql # - solr # - redis # - blackfire mysql: - command: mysqld --user=root --verbose - image: mysql:5.6 + image: blueoakinteractive/mariadb:10.1 ports: - "3306" volumes: - /var/data/<%= projectName %>:/var/lib/mysql - - /var/www/<%= projectName %>/compose/conf/mysql.cnf:/etc/mysql/my.cnf environment: MYSQL_DATABASE: data MYSQL_USER: mysql @@ -29,7 +24,7 @@ mysql: MYSQL_ALLOW_EMPTY_PASSWORD: yes MYSQL_ROOT_PASSWORD: root nginx: - image: nginx:1.9.0 + image: nginx:alpine volumes: - /var/www/<%= projectName %>/compose/conf/nginx.conf:/etc/nginx/conf.d/default.conf - /var/www/<%= projectName %>:/var/www/html diff --git a/generators/app/templates/images/php/Dockerfile b/generators/app/templates/images/php/Dockerfile deleted file mode 100644 index 7039a4b..0000000 --- a/generators/app/templates/images/php/Dockerfile +++ /dev/null @@ -1,45 +0,0 @@ -FROM php:5.6.8-fpm -# Install modules -RUN apt-get update && apt-get install -y \ - libfreetype6-dev \ - libjpeg62-turbo-dev \ - libmcrypt-dev \ - libpng12-dev \ - libxml2-dev \ - && docker-php-ext-install mcrypt pdo_mysql mysql mysqli mbstring opcache soap \ - && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ - && docker-php-ext-install gd - -# Setup xdebug -RUN curl -L -o /root/xdebug.tgz https://pecl.php.net/get/xdebug-2.3.2.tgz && \ - cd /root && \ - tar -zxvf xdebug.tgz && \ - cd /root/xdebug-2.3.2 && \ - /usr/local/bin/phpize && \ - ./configure --enable-xdebug --with-php-config=/usr/local/bin/php-config && \ - make && \ - make install && \ - cd /root && \ - rm -fr /root/xdebug-2.3.2 && \ - rm -fr /root/xdebug.tgz - -# Setup xhprof -RUN curl -L -o /root/xhprof.tgz https://pecl.php.net/get/xhprof-0.9.4.tgz && \ - cd /root && \ - tar -zxvf xhprof.tgz && \ - cd /root/xhprof-0.9.4/extension && \ - /usr/local/bin/phpize && \ - ./configure --with-php-config=/usr/local/bin/php-config && \ - make && \ - make install && \ - cd /root && \ - rm -fr /root/xhprof-0.9.4.tgz && \ - rm -fr /root/xhprof.tgz - -RUN export VERSION=`php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;"` \ - && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/${VERSION} \ - && tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \ - && mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so \ - && echo "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707" > $PHP_INI_DIR/conf.d/blackfire.ini - -CMD ["php-fpm"] From e2820576049cdde89a6fadc851c4acd7458ddc5b Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Mon, 26 Sep 2016 10:27:21 -0400 Subject: [PATCH 06/16] Added back conf for nginx --- generators/app/index.js | 10 ++++++ generators/app/templates/conf/nginx.conf | 41 ++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 generators/app/templates/conf/nginx.conf diff --git a/generators/app/index.js b/generators/app/index.js index ab62868..8948cb8 100644 --- a/generators/app/index.js +++ b/generators/app/index.js @@ -97,6 +97,16 @@ module.exports = yeoman.generators.Base.extend({ } ); + // Create compose/conf folder and files. + this.fs.copyTpl( + this.templatePath('conf/*'), + this.destinationPath('compose/conf'), + { + projectName: this.props.projectName, + hostIP: this.props.hostIP + } + ); + // Create drush aliases based on user input. if (this.setupAliases) { this.fs.copyTpl( diff --git a/generators/app/templates/conf/nginx.conf b/generators/app/templates/conf/nginx.conf new file mode 100644 index 0000000..7838000 --- /dev/null +++ b/generators/app/templates/conf/nginx.conf @@ -0,0 +1,41 @@ +# http://wiki.nginx.org/Symfony +# http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html + +client_max_body_size 100m; + +upstream phpfcgi { + server phpfpm:9000; + # server unix:/var/run/php5-fpm.sock; #for PHP-FPM running on UNIX socket +} + +server { + listen 80 default_server; + listen [::]:80 default_server ipv6only=on; + + root /var/www/html/www; + + # strip index.php/ prefix if it is present + rewrite ^/index\.php/?(.*)$ /$1 permanent; + + location / { + index index.php; + try_files $uri @rewriteapp; + } + + location @rewriteapp { + rewrite ^(.*)$ /index.php/$1 last; + } + + # pass the PHP scripts to FastCGI server from upstream phpfcgi + location ~ ^/(index|install|core/install)\.php(/|$) { + fastcgi_pass phpfcgi; + fastcgi_split_path_info ^(.+\.php)(/.*)$; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param HTTPS off; + # Allow access to /app_dev.php & /config.php + fastcgi_param REMOTE_ADDR 127.0.0.1; + fastcgi_param <%= projectName %> "<%= projectName %>"; + fastcgi_param PHP_IDE_CONFIG "serverName=<%= projectName %>"; + } +} From 8e46a2ef16f74aeacca695caf4731f08e392104f Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Thu, 3 Nov 2016 15:54:14 -0400 Subject: [PATCH 07/16] Added php.ini to override xdebug or other php settings per project --- generators/app/templates/conf/php.ini | 9 +++++++++ generators/app/templates/docker-compose.yml | 1 + 2 files changed, 10 insertions(+) create mode 100644 generators/app/templates/conf/php.ini diff --git a/generators/app/templates/conf/php.ini b/generators/app/templates/conf/php.ini new file mode 100644 index 0000000..dfe9fb6 --- /dev/null +++ b/generators/app/templates/conf/php.ini @@ -0,0 +1,9 @@ +[xdebug] +zend_extension=xdebug.so +xdebug.max_nesting_level=256 +xdebug.remote_enable=1 +xdebug.remote_autostart=0 +xdebug.remote_connect_back=0 +xdebug.remote_host=<%= hostIP %> +xdebug.remote_port=9001 +xdebug.remote_log=/tmp/php5-xdebug.log diff --git a/generators/app/templates/docker-compose.yml b/generators/app/templates/docker-compose.yml index 0c9862b..2b41245 100644 --- a/generators/app/templates/docker-compose.yml +++ b/generators/app/templates/docker-compose.yml @@ -6,6 +6,7 @@ phpfpm: image: blueoakinteractive/php-fpm:5.6-dev volumes: - /var/www/<%= projectName %>:/var/www/html + - /var/www/<%= projectName %>/compose/conf/php.ini:/etc/php5/conf.d/zzzzzz-php.ini links: - mysql # - solr From 1b393daa7ff073f57311573ca2eeff781a206d7c Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Thu, 6 Apr 2017 22:06:03 -0400 Subject: [PATCH 08/16] Make variable a string --- generators/app/templates/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/app/templates/docker-compose.yml b/generators/app/templates/docker-compose.yml index 2b41245..dc58c47 100644 --- a/generators/app/templates/docker-compose.yml +++ b/generators/app/templates/docker-compose.yml @@ -22,7 +22,7 @@ mysql: MYSQL_DATABASE: data MYSQL_USER: mysql MYSQL_PASSWORD: mysql - MYSQL_ALLOW_EMPTY_PASSWORD: yes + MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' MYSQL_ROOT_PASSWORD: root nginx: image: nginx:alpine From 12fbcb6485ff7e25de9fb2e5c0fbfb8e7c5a5731 Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Tue, 2 May 2017 14:10:32 -0400 Subject: [PATCH 09/16] Rework template directories to allow stack version of pre-defined or custom directory --- generators/app/index.js | 13 +++-- .../{ => drupal-php5}/conf/nginx.conf | 0 .../templates/{ => drupal-php5}/conf/php.ini | 0 .../{ => drupal-php5}/docker-compose.yml | 0 .../placeholder.aliases.drushrc.php | 0 .../app/templates/drupal-php7/conf/nginx.conf | 41 +++++++++++++++ .../app/templates/drupal-php7/conf/php.ini | 9 ++++ .../templates/drupal-php7/docker-compose.yml | 51 +++++++++++++++++++ .../placeholder.aliases.drushrc.php | 22 ++++++++ 9 files changed, 133 insertions(+), 3 deletions(-) rename generators/app/templates/{ => drupal-php5}/conf/nginx.conf (100%) rename generators/app/templates/{ => drupal-php5}/conf/php.ini (100%) rename generators/app/templates/{ => drupal-php5}/docker-compose.yml (100%) rename generators/app/templates/{ => drupal-php5}/drush-alias/placeholder.aliases.drushrc.php (100%) create mode 100644 generators/app/templates/drupal-php7/conf/nginx.conf create mode 100644 generators/app/templates/drupal-php7/conf/php.ini create mode 100644 generators/app/templates/drupal-php7/docker-compose.yml create mode 100644 generators/app/templates/drupal-php7/drush-alias/placeholder.aliases.drushrc.php diff --git a/generators/app/index.js b/generators/app/index.js index 8948cb8..54cdf9a 100644 --- a/generators/app/index.js +++ b/generators/app/index.js @@ -18,6 +18,13 @@ module.exports = yeoman.generators.Base.extend({ message: 'Enter your project name?', default: process.cwd().split("/").pop() }, + { + type: 'input', + name: 'stack', + message: 'Enter the name of the stack for this build (ie: drupal-php5, drupal-php7, etc...)', + store: true, + default: 'drupal-php7' + }, { type: 'input', name: 'hostIP', @@ -88,7 +95,7 @@ module.exports = yeoman.generators.Base.extend({ // Create docker-compose.yml. this.fs.copyTpl( - this.templatePath('docker-compose.yml'), + this.templatePath(this.props.stack + '/docker-compose.yml'), this.destinationPath('docker-compose.yml'), { projectName: this.props.projectName, @@ -99,7 +106,7 @@ module.exports = yeoman.generators.Base.extend({ // Create compose/conf folder and files. this.fs.copyTpl( - this.templatePath('conf/*'), + this.templatePath(this.props.stack + '/conf/*'), this.destinationPath('compose/conf'), { projectName: this.props.projectName, @@ -110,7 +117,7 @@ module.exports = yeoman.generators.Base.extend({ // Create drush aliases based on user input. if (this.setupAliases) { this.fs.copyTpl( - this.templatePath('drush-alias'), + this.templatePath(this.props.stack + '/drush-alias'), this.destinationPath(userDir + '.drush/'), { aliasName: this.props.drushAliases.aliasName, portNumber: this.props.drushAliases.portNumber diff --git a/generators/app/templates/conf/nginx.conf b/generators/app/templates/drupal-php5/conf/nginx.conf similarity index 100% rename from generators/app/templates/conf/nginx.conf rename to generators/app/templates/drupal-php5/conf/nginx.conf diff --git a/generators/app/templates/conf/php.ini b/generators/app/templates/drupal-php5/conf/php.ini similarity index 100% rename from generators/app/templates/conf/php.ini rename to generators/app/templates/drupal-php5/conf/php.ini diff --git a/generators/app/templates/docker-compose.yml b/generators/app/templates/drupal-php5/docker-compose.yml similarity index 100% rename from generators/app/templates/docker-compose.yml rename to generators/app/templates/drupal-php5/docker-compose.yml diff --git a/generators/app/templates/drush-alias/placeholder.aliases.drushrc.php b/generators/app/templates/drupal-php5/drush-alias/placeholder.aliases.drushrc.php similarity index 100% rename from generators/app/templates/drush-alias/placeholder.aliases.drushrc.php rename to generators/app/templates/drupal-php5/drush-alias/placeholder.aliases.drushrc.php diff --git a/generators/app/templates/drupal-php7/conf/nginx.conf b/generators/app/templates/drupal-php7/conf/nginx.conf new file mode 100644 index 0000000..7838000 --- /dev/null +++ b/generators/app/templates/drupal-php7/conf/nginx.conf @@ -0,0 +1,41 @@ +# http://wiki.nginx.org/Symfony +# http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html + +client_max_body_size 100m; + +upstream phpfcgi { + server phpfpm:9000; + # server unix:/var/run/php5-fpm.sock; #for PHP-FPM running on UNIX socket +} + +server { + listen 80 default_server; + listen [::]:80 default_server ipv6only=on; + + root /var/www/html/www; + + # strip index.php/ prefix if it is present + rewrite ^/index\.php/?(.*)$ /$1 permanent; + + location / { + index index.php; + try_files $uri @rewriteapp; + } + + location @rewriteapp { + rewrite ^(.*)$ /index.php/$1 last; + } + + # pass the PHP scripts to FastCGI server from upstream phpfcgi + location ~ ^/(index|install|core/install)\.php(/|$) { + fastcgi_pass phpfcgi; + fastcgi_split_path_info ^(.+\.php)(/.*)$; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param HTTPS off; + # Allow access to /app_dev.php & /config.php + fastcgi_param REMOTE_ADDR 127.0.0.1; + fastcgi_param <%= projectName %> "<%= projectName %>"; + fastcgi_param PHP_IDE_CONFIG "serverName=<%= projectName %>"; + } +} diff --git a/generators/app/templates/drupal-php7/conf/php.ini b/generators/app/templates/drupal-php7/conf/php.ini new file mode 100644 index 0000000..dfe9fb6 --- /dev/null +++ b/generators/app/templates/drupal-php7/conf/php.ini @@ -0,0 +1,9 @@ +[xdebug] +zend_extension=xdebug.so +xdebug.max_nesting_level=256 +xdebug.remote_enable=1 +xdebug.remote_autostart=0 +xdebug.remote_connect_back=0 +xdebug.remote_host=<%= hostIP %> +xdebug.remote_port=9001 +xdebug.remote_log=/tmp/php5-xdebug.log diff --git a/generators/app/templates/drupal-php7/docker-compose.yml b/generators/app/templates/drupal-php7/docker-compose.yml new file mode 100644 index 0000000..1451a63 --- /dev/null +++ b/generators/app/templates/drupal-php7/docker-compose.yml @@ -0,0 +1,51 @@ +# redis: +# image: redis +# ports: +# - "6379" +phpfpm: + image: blueoakinteractive/php-fpm:7.11-dev + volumes: + - /var/www/<%= projectName %>:/var/www/html + - /var/www/<%= projectName %>/compose/conf/php.ini:/etc/php5/conf.d/zzzzzz-php.ini + links: + - mysql + # - solr + # - redis + # - blackfire +mysql: + image: blueoakinteractive/mariadb:10.1 + ports: + - "3306" + volumes: + - /var/data/<%= projectName %>:/var/lib/mysql + environment: + MYSQL_DATABASE: data + MYSQL_USER: mysql + MYSQL_PASSWORD: mysql + MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' + MYSQL_ROOT_PASSWORD: root +nginx: + image: nginx:alpine + volumes: + - /var/www/<%= projectName %>/compose/conf/nginx.conf:/etc/nginx/conf.d/default.conf + - /var/www/<%= projectName %>:/var/www/html + ports: + - "80" + - "443" + links: + - phpfpm + environment: + VIRTUAL_HOST: <%= projectName %> +# blackfire: +# image: blackfire/blackfire +# ports: +# - "8707" +# environment: +# BLACKFIRE_SERVER_ID: <%= blackfireServerId %> +# BLACKFIRE_SERVER_TOKEN: <%= blackfireServerToken %> +# solr: +# image: solr:5.5 +# ports: +# - "8983" +# volumes: +# - /var/www/<%= projectName %>/solr:/opt/solr/server/solr/<%= projectName %> diff --git a/generators/app/templates/drupal-php7/drush-alias/placeholder.aliases.drushrc.php b/generators/app/templates/drupal-php7/drush-alias/placeholder.aliases.drushrc.php new file mode 100644 index 0000000..ca5feef --- /dev/null +++ b/generators/app/templates/drupal-php7/drush-alias/placeholder.aliases.drushrc.php @@ -0,0 +1,22 @@ + production environment. +$aliases['master'] = array ( + 'remote-host' => '<%= aliasName %>.production.clients.blueoakinteractive.net', + 'remote-user' => '<%= aliasName %>', + 'uri' => '<%= aliasName %>.production.clients.blueoakinteractive.net', + 'root' => '/home/<%= aliasName %>/www', + 'ssh-options' => '-p <%= portNumber %> -o "AddressFamily inet"', + 'path-aliases' => array( + '%files' => 'sites/default/files', + ), +); + +// Alias for the <%= aliasName %> local environment. +$aliases['_local'] = array ( + 'root' => '/var/www/<%= aliasName %>.boi/www', + 'uri' => 'http://<%= aliasName %>.boi', +); + +// Sync files from master to _local +$options['shell-aliases']['pull-files'] = '!drush rsync @<%= aliasName %>.master:%files/ @<%= aliasName %>._local:%files'; From adc4387d7e49325e839cbc42ceb81e0ca836e8a5 Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Tue, 2 May 2017 14:17:47 -0400 Subject: [PATCH 10/16] Specify correct PHP 7 image --- generators/app/templates/drupal-php7/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/app/templates/drupal-php7/docker-compose.yml b/generators/app/templates/drupal-php7/docker-compose.yml index 1451a63..4c2b334 100644 --- a/generators/app/templates/drupal-php7/docker-compose.yml +++ b/generators/app/templates/drupal-php7/docker-compose.yml @@ -3,7 +3,7 @@ # ports: # - "6379" phpfpm: - image: blueoakinteractive/php-fpm:7.11-dev + image: blueoakinteractive/php-fpm:7.0.11-dev volumes: - /var/www/<%= projectName %>:/var/www/html - /var/www/<%= projectName %>/compose/conf/php.ini:/etc/php5/conf.d/zzzzzz-php.ini From 935a251373a1e2c2643fa170b4e1e6ce2fa96e23 Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Tue, 2 May 2017 14:18:49 -0400 Subject: [PATCH 11/16] Removed custom php.ini for PHP 7 since it's no longer needed --- generators/app/templates/drupal-php7/conf/php.ini | 9 --------- generators/app/templates/drupal-php7/docker-compose.yml | 1 - 2 files changed, 10 deletions(-) delete mode 100644 generators/app/templates/drupal-php7/conf/php.ini diff --git a/generators/app/templates/drupal-php7/conf/php.ini b/generators/app/templates/drupal-php7/conf/php.ini deleted file mode 100644 index dfe9fb6..0000000 --- a/generators/app/templates/drupal-php7/conf/php.ini +++ /dev/null @@ -1,9 +0,0 @@ -[xdebug] -zend_extension=xdebug.so -xdebug.max_nesting_level=256 -xdebug.remote_enable=1 -xdebug.remote_autostart=0 -xdebug.remote_connect_back=0 -xdebug.remote_host=<%= hostIP %> -xdebug.remote_port=9001 -xdebug.remote_log=/tmp/php5-xdebug.log diff --git a/generators/app/templates/drupal-php7/docker-compose.yml b/generators/app/templates/drupal-php7/docker-compose.yml index 4c2b334..6735985 100644 --- a/generators/app/templates/drupal-php7/docker-compose.yml +++ b/generators/app/templates/drupal-php7/docker-compose.yml @@ -6,7 +6,6 @@ phpfpm: image: blueoakinteractive/php-fpm:7.0.11-dev volumes: - /var/www/<%= projectName %>:/var/www/html - - /var/www/<%= projectName %>/compose/conf/php.ini:/etc/php5/conf.d/zzzzzz-php.ini links: - mysql # - solr From e39fba9c5cdeb170e6b7ff7914c4a86104ebfd84 Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Tue, 15 Aug 2017 16:39:08 -0400 Subject: [PATCH 12/16] Added xdebug config to php7 template --- generators/app/templates/drupal-php7/conf/php.ini | 9 +++++++++ generators/app/templates/drupal-php7/docker-compose.yml | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 generators/app/templates/drupal-php7/conf/php.ini diff --git a/generators/app/templates/drupal-php7/conf/php.ini b/generators/app/templates/drupal-php7/conf/php.ini new file mode 100644 index 0000000..dfe9fb6 --- /dev/null +++ b/generators/app/templates/drupal-php7/conf/php.ini @@ -0,0 +1,9 @@ +[xdebug] +zend_extension=xdebug.so +xdebug.max_nesting_level=256 +xdebug.remote_enable=1 +xdebug.remote_autostart=0 +xdebug.remote_connect_back=0 +xdebug.remote_host=<%= hostIP %> +xdebug.remote_port=9001 +xdebug.remote_log=/tmp/php5-xdebug.log diff --git a/generators/app/templates/drupal-php7/docker-compose.yml b/generators/app/templates/drupal-php7/docker-compose.yml index 6735985..f991b6d 100644 --- a/generators/app/templates/drupal-php7/docker-compose.yml +++ b/generators/app/templates/drupal-php7/docker-compose.yml @@ -5,7 +5,8 @@ phpfpm: image: blueoakinteractive/php-fpm:7.0.11-dev volumes: - - /var/www/<%= projectName %>:/var/www/html + - /var/www/<%= projectName %>:/var/www/html\ + - /var/www/<%= projectName %>/compose/conf/php.ini:/etc/php7/conf.d/zzzzzz-php.ini links: - mysql # - solr From f5219d356630cdaf6921c8c6604c2a0cbdb8469f Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Tue, 15 Aug 2017 16:47:23 -0400 Subject: [PATCH 13/16] Fixed typo in volume mount --- generators/app/templates/drupal-php7/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/app/templates/drupal-php7/docker-compose.yml b/generators/app/templates/drupal-php7/docker-compose.yml index f991b6d..686684a 100644 --- a/generators/app/templates/drupal-php7/docker-compose.yml +++ b/generators/app/templates/drupal-php7/docker-compose.yml @@ -5,7 +5,7 @@ phpfpm: image: blueoakinteractive/php-fpm:7.0.11-dev volumes: - - /var/www/<%= projectName %>:/var/www/html\ + - /var/www/<%= projectName %>:/var/www/html - /var/www/<%= projectName %>/compose/conf/php.ini:/etc/php7/conf.d/zzzzzz-php.ini links: - mysql From 1a845b5dd754e397ed55ace93852b23ddc8b7e64 Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Mon, 12 Nov 2018 13:13:39 -0500 Subject: [PATCH 14/16] Updated docker-compose template to use traefik --- generators/app/index.js | 1 + .../templates/drupal-php7/docker-compose.yml | 135 +++++++++++------- 2 files changed, 85 insertions(+), 51 deletions(-) diff --git a/generators/app/index.js b/generators/app/index.js index 54cdf9a..63eb836 100644 --- a/generators/app/index.js +++ b/generators/app/index.js @@ -99,6 +99,7 @@ module.exports = yeoman.generators.Base.extend({ this.destinationPath('docker-compose.yml'), { projectName: this.props.projectName, + networkName: this.props.projectName.replace('.boi', ''), blackfireServerId: this.props.blackfireServerId, blackfireServerToken: this.props.blackfireServerToken } diff --git a/generators/app/templates/drupal-php7/docker-compose.yml b/generators/app/templates/drupal-php7/docker-compose.yml index 686684a..8c9cbe0 100644 --- a/generators/app/templates/drupal-php7/docker-compose.yml +++ b/generators/app/templates/drupal-php7/docker-compose.yml @@ -1,51 +1,84 @@ -# redis: -# image: redis -# ports: -# - "6379" -phpfpm: - image: blueoakinteractive/php-fpm:7.0.11-dev - volumes: - - /var/www/<%= projectName %>:/var/www/html - - /var/www/<%= projectName %>/compose/conf/php.ini:/etc/php7/conf.d/zzzzzz-php.ini - links: - - mysql - # - solr - # - redis - # - blackfire -mysql: - image: blueoakinteractive/mariadb:10.1 - ports: - - "3306" - volumes: - - /var/data/<%= projectName %>:/var/lib/mysql - environment: - MYSQL_DATABASE: data - MYSQL_USER: mysql - MYSQL_PASSWORD: mysql - MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' - MYSQL_ROOT_PASSWORD: root -nginx: - image: nginx:alpine - volumes: - - /var/www/<%= projectName %>/compose/conf/nginx.conf:/etc/nginx/conf.d/default.conf - - /var/www/<%= projectName %>:/var/www/html - ports: - - "80" - - "443" - links: - - phpfpm - environment: - VIRTUAL_HOST: <%= projectName %> -# blackfire: -# image: blackfire/blackfire -# ports: -# - "8707" -# environment: -# BLACKFIRE_SERVER_ID: <%= blackfireServerId %> -# BLACKFIRE_SERVER_TOKEN: <%= blackfireServerToken %> -# solr: -# image: solr:5.5 -# ports: -# - "8983" -# volumes: -# - /var/www/<%= projectName %>/solr:/opt/solr/server/solr/<%= projectName %> +version: "3" + +services: + phpfpm: + image: blueoakinteractive/php-fpm:7.0.11-dev + volumes: + - /var/www/<%= projectName %>:/var/www/html + - /var/www/<%= projectName %>/compose/conf/php.ini:/etc/php7/conf.d/zzzzzz-php.ini + links: + - mysql + # - elasticsearch.internal + # - solr + # - redis + # - blackfire + networks: + - <%= networkName %> + mysql: + image: blueoakinteractive/mariadb:10.1 + ports: + - "3306" + volumes: + - /var/data/<%= projectName %>:/var/lib/mysql + environment: + MYSQL_DATABASE: data + MYSQL_USER: mysql + MYSQL_PASSWORD: mysql + MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' + MYSQL_ROOT_PASSWORD: root + networks: + - <%= networkName %> + nginx: + image: nginx:alpine + volumes: + - /var/www/<%= projectName %>/compose/conf/nginx.conf:/etc/nginx/conf.d/default.conf + - /var/www/<%= projectName %>:/var/www/html + ports: + - "80" + - "443" + links: + - phpfpm + networks: + - traefik + - <%= networkName %> + labels: + - "traefik.frontend.rule=Host:<%= projectName %>" + - "traefik.docker.network=traefik" + - "traefik.enable=true" + # redis: + # image: redis + # ports: + # - "6379" + # networks: + # - <%= networkName %> + # blackfire: + # image: blackfire/blackfire + # ports: + # - "8707" + # environment: + # BLACKFIRE_SERVER_ID: <%= blackfireServerId %> + # BLACKFIRE_SERVER_TOKEN: <%= blackfireServerToken %> + # networks: + # - <%= networkName %> + # solr: + # image: solr:5.5 + # ports: + # - "8983" + # volumes: + # - /var/www/<%= projectName %>/solr:/opt/solr/server/solr/<%= projectName %> + # networks: + # - <%= networkName %> + # elasticsearch.internal: + # container_name: elasticsearch.internal + # image: blueoakinteractive/elasticsearch:5.6 + # ports: + # - "9200" + # networks: + # - <%= networkName %> + +networks: + traefik: + external: + name: traefik + <%= networkName %>: + driver: bridge From ad9a67065284502d4a500f56a844fe2b38b232d0 Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Mon, 12 Nov 2018 13:15:39 -0500 Subject: [PATCH 15/16] Updated drupal-php5 template to use traefik --- .../templates/drupal-php5/docker-compose.yml | 125 +++++++++++------- 1 file changed, 74 insertions(+), 51 deletions(-) diff --git a/generators/app/templates/drupal-php5/docker-compose.yml b/generators/app/templates/drupal-php5/docker-compose.yml index dc58c47..3e5b7f6 100644 --- a/generators/app/templates/drupal-php5/docker-compose.yml +++ b/generators/app/templates/drupal-php5/docker-compose.yml @@ -1,51 +1,74 @@ -# redis: -# image: redis -# ports: -# - "6379" -phpfpm: - image: blueoakinteractive/php-fpm:5.6-dev - volumes: - - /var/www/<%= projectName %>:/var/www/html - - /var/www/<%= projectName %>/compose/conf/php.ini:/etc/php5/conf.d/zzzzzz-php.ini - links: - - mysql - # - solr - # - redis - # - blackfire -mysql: - image: blueoakinteractive/mariadb:10.1 - ports: - - "3306" - volumes: - - /var/data/<%= projectName %>:/var/lib/mysql - environment: - MYSQL_DATABASE: data - MYSQL_USER: mysql - MYSQL_PASSWORD: mysql - MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' - MYSQL_ROOT_PASSWORD: root -nginx: - image: nginx:alpine - volumes: - - /var/www/<%= projectName %>/compose/conf/nginx.conf:/etc/nginx/conf.d/default.conf - - /var/www/<%= projectName %>:/var/www/html - ports: - - "80" - - "443" - links: - - phpfpm - environment: - VIRTUAL_HOST: <%= projectName %> -# blackfire: -# image: blackfire/blackfire -# ports: -# - "8707" -# environment: -# BLACKFIRE_SERVER_ID: <%= blackfireServerId %> -# BLACKFIRE_SERVER_TOKEN: <%= blackfireServerToken %> -# solr: -# image: solr:5.5 -# ports: -# - "8983" -# volumes: -# - /var/www/<%= projectName %>/solr:/opt/solr/server/solr/<%= projectName %> +version: "3" + +services: + # redis: + # image: redis + # ports: + # - "6379" + phpfpm: + image: blueoakinteractive/php-fpm:5.6-dev + volumes: + - /var/www/<%= projectName %>:/var/www/html + - /var/www/<%= projectName %>/compose/conf/php.ini:/etc/php5/conf.d/zzzzzz-php.ini + links: + - mysql + # - solr + # - redis + # - blackfire + networks: + - <%= networkName %> + mysql: + image: blueoakinteractive/mariadb:10.1 + ports: + - "3306" + volumes: + - /var/data/<%= projectName %>:/var/lib/mysql + environment: + MYSQL_DATABASE: data + MYSQL_USER: mysql + MYSQL_PASSWORD: mysql + MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' + MYSQL_ROOT_PASSWORD: root + networks: + - <%= networkName %> + nginx: + image: nginx:alpine + volumes: + - /var/www/<%= projectName %>/compose/conf/nginx.conf:/etc/nginx/conf.d/default.conf + - /var/www/<%= projectName %>:/var/www/html + ports: + - "80" + - "443" + links: + - phpfpm + networks: + - traefik + - <%= networkName %> + labels: + - "traefik.frontend.rule=Host:<%= projectName %>" + - "traefik.docker.network=traefik" + - "traefik.enable=true" + # blackfire: + # image: blackfire/blackfire + # ports: + # - "8707" + # environment: + # BLACKFIRE_SERVER_ID: <%= blackfireServerId %> + # BLACKFIRE_SERVER_TOKEN: <%= blackfireServerToken %> + # networks: + # - <%= networkName %> + # solr: + # image: solr:5.5 + # ports: + # - "8983" + # volumes: + # - /var/www/<%= projectName %>/solr:/opt/solr/server/solr/<%= projectName %> + # networks: + # - <%= networkName %> + +networks: + traefik: + external: + name: traefik + <%= networkName %>: + driver: bridge From 1aa5bf977f2e1ef3f3365712d4d1aa7b290776e6 Mon Sep 17 00:00:00 2001 From: Andy Giles Date: Mon, 12 Nov 2018 16:34:16 -0500 Subject: [PATCH 16/16] Added fastcgi_buffer config --- generators/app/templates/drupal-php5/conf/nginx.conf | 2 ++ generators/app/templates/drupal-php7/conf/nginx.conf | 2 ++ 2 files changed, 4 insertions(+) diff --git a/generators/app/templates/drupal-php5/conf/nginx.conf b/generators/app/templates/drupal-php5/conf/nginx.conf index 7838000..f65e1a3 100644 --- a/generators/app/templates/drupal-php5/conf/nginx.conf +++ b/generators/app/templates/drupal-php5/conf/nginx.conf @@ -37,5 +37,7 @@ server { fastcgi_param REMOTE_ADDR 127.0.0.1; fastcgi_param <%= projectName %> "<%= projectName %>"; fastcgi_param PHP_IDE_CONFIG "serverName=<%= projectName %>"; + fastcgi_buffers 16 16k; + fastcgi_buffer_size 32k; } } diff --git a/generators/app/templates/drupal-php7/conf/nginx.conf b/generators/app/templates/drupal-php7/conf/nginx.conf index 7838000..f65e1a3 100644 --- a/generators/app/templates/drupal-php7/conf/nginx.conf +++ b/generators/app/templates/drupal-php7/conf/nginx.conf @@ -37,5 +37,7 @@ server { fastcgi_param REMOTE_ADDR 127.0.0.1; fastcgi_param <%= projectName %> "<%= projectName %>"; fastcgi_param PHP_IDE_CONFIG "serverName=<%= projectName %>"; + fastcgi_buffers 16 16k; + fastcgi_buffer_size 32k; } }