diff --git a/build-scripts/drupal7/000-default.conf b/build-scripts/drupal7/000-default.conf index c565333db4a1823eb2843500cca6e6e8df273454..344b11dd523e565b6136bda059c32109f943602b 100644 --- a/build-scripts/drupal7/000-default.conf +++ b/build-scripts/drupal7/000-default.conf @@ -1,7 +1,7 @@ <VirtualHost *:80> DocumentRoot /var/www/drupal7 ServerAdmin webmaster@localhost - ServerName d7 + ServerName docker Redirect permanent / https://docker/ <Directory /> Options FollowSymLinks diff --git a/build-scripts/drupal7/Dockerfile b/build-scripts/drupal7/Dockerfile index 23a8cd40ec09a371bf46c9b172929d2d4f83b407..87b199191b583e45d0b0c7a5cfc04d4cded4a04a 100644 --- a/build-scripts/drupal7/Dockerfile +++ b/build-scripts/drupal7/Dockerfile @@ -18,7 +18,10 @@ RUN apt-get update && \ ## Add the repo to get the latest PHP versions RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 RUN export LANG=en_US.UTF-8 -RUN add-apt-repository -y ppa:ondrej/php +##RUN add-apt-repository -y ppa:ondrej/php + +## Need LC_ALL= otherwise adding the repos throws an ascii error. +RUN LC_ALL=en_US.UTF-8 add-apt-repository -y ppa:ondrej/php ## Add the git repo so we can get the latest git (we need 2.9.2+) RUN add-apt-repository ppa:git-core/ppa @@ -46,6 +49,7 @@ RUN apt-get install -y \ php5.6-mcrypt \ php5.6-zip \ php-pear \ + php-xml \ libapache2-mod-php5.6 \ optipng \ jpegoptim \ @@ -84,7 +88,6 @@ RUN composer global update # Unfortunately, adding the composer vendor dir to the PATH doesn't seem to work. So: RUN ln -s /root/.composer/vendor/bin/drush /usr/local/bin/drush -################## BEGIN DRUPAL INSTALLATION ###################### # Manually set up the apache environment variables ENV APACHE_RUN_USER www-data ENV APACHE_RUN_GROUP www-data @@ -99,14 +102,18 @@ RUN openssl req -x509 -nodes -days 1825 -newkey rsa:2048 -keyout /tmp/apache.key RUN cp /tmp/apache.crt /etc/ssl/certs/server.crt RUN cp /tmp/apache.key /etc/ssl/private/server.key +## Create the vagrant user so we can assign it later +## RUN useradd vagrant -p vagrant +## Add the "vagrant" user (because we are all familiar with having it) +RUN useradd -d /home/vagrant -ms /bin/bash -g root -G sudo -p vagrant vagrant + # Replace the default site configuration with our own. COPY 000-default.conf /etc/apache2/sites-available/000-default.conf -# Install Drupal. -RUN drush dl -v -d drupal-7.59 --destination="/var/www" --drupal-project-rename="drupal7" && \ - chown -R www-data:www-data /var/www/ - -RUN useradd vagrant -p vagrant +## Install Drupal. +RUN drush dl -v -d drupal-7.59 --destination="/var/www" --drupal-project-rename="drupal7" + +RUN chown -R www-data:www-data /var/www/ ## Install the drush registry_rebuild module RUN drush @none dl registry_rebuild @@ -201,6 +208,4 @@ EXPOSE 443 ENTRYPOINT ["docker-entrypoint-d7.sh"] # If no command is passed to the container, start Apache by default. -CMD ["apachectl", "-D", "FOREGROUND"] - -##################### INSTALLATION END ##################### \ No newline at end of file +CMD ["apachectl", "-D", "FOREGROUND"] \ No newline at end of file diff --git a/build-scripts/drupal7/docker-entrypoint-d7.sh b/build-scripts/drupal7/docker-entrypoint-d7.sh index b2fd4b286a5e3b3a4d02e837ac9f14b65a0b95e1..6222ee9c2e213d05c4770289d9e91d7af836e0bf 100644 --- a/build-scripts/drupal7/docker-entrypoint-d7.sh +++ b/build-scripts/drupal7/docker-entrypoint-d7.sh @@ -30,5 +30,12 @@ if [ -n "$APACHE_SITE_ALIAS" ]; then sed -i 's@^\s*ServerAlias.*@'" ServerAlias ${APACHE_SITE_ALIAS}"'@' /etc/apache2/sites-available/000-default.conf fi +## Change default PHP to 5.6 (just to be sure). +a2dismod php7.2 && a2enmod php5.6 && update-alternatives --set php /usr/bin/php5.6 && service apache2 restart + +## Change permissions on /var/www/drupal7 +chown -R vagrant:www-data /var/www/drupal7 +chmod -R g+w /var/www/drupal7 + # Now that we're set up, run whatever command was passed to the entrypoint. exec "$@" diff --git a/build-scripts/drupal7/settings.conf b/build-scripts/drupal7/settings.conf index 1b2ea44afff7b6739884f81967bfe4bb2ce5b573..b482f18560d59174bf3d6299da88dce981df21a1 100644 --- a/build-scripts/drupal7/settings.conf +++ b/build-scripts/drupal7/settings.conf @@ -5,11 +5,11 @@ $UWhost = 'docker:4443'; // Path to site root. $UWpref = 'fdsu1'; // Name of site database. -$UWdb = 'fdsu1'; +$UWdb = 'd7_fdsu1'; //Username to connect to site database. $UWuser = 'drupal'; // Password to connect to site database. -$UWpass = 'verybadpassword'; +$UWpass = 'vagrant'; // Hostname to connect to site database. $UWpri = 'db'; diff --git a/build-scripts/drupal8/000-default.conf b/build-scripts/drupal8/000-default.conf index e50ee9fe07f29ceba5627cffe2a360a61c40d8c9..3fda60a644384568c80dc1e61155543d09a89b6e 100644 --- a/build-scripts/drupal8/000-default.conf +++ b/build-scripts/drupal8/000-default.conf @@ -1,5 +1,5 @@ <VirtualHost *:80> - DocumentRoot /var/www/drupal + DocumentRoot /var/www/drupal8 ServerAdmin webmaster@localhost ServerName docker Redirect permanent / https://docker/ @@ -14,9 +14,9 @@ allow from all </Directory> </VirtualHost> -<VirtualHost *:443> + <VirtualHost *:443> ServerAdmin webmaster@localhost - DocumentRoot /var/www/drupal + DocumentRoot /var/www/drupal8 ServerName docker <Directory /> Options FollowSymLinks @@ -28,19 +28,14 @@ Order allow,deny allow from all </Directory> - ErrorLog /error.log - # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn - CustomLog /access.log combined - SSLEngine on SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key - Alias /doc/ /usr/share/doc/ <Directory /usr/share/doc/> Options Indexes MultiViews FollowSymLinks @@ -49,5 +44,4 @@ Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> - -</VirtualHost> \ No newline at end of file + </VirtualHost> \ No newline at end of file diff --git a/build-scripts/drupal8/Dockerfile b/build-scripts/drupal8/Dockerfile index f96fddd092b2ca7fd944a0682b938bac12c6df42..ea25cb964bc82f12523743027034ce23ddf8a47e 100644 --- a/build-scripts/drupal8/Dockerfile +++ b/build-scripts/drupal8/Dockerfile @@ -97,7 +97,7 @@ RUN sudo npm install npm@latest -g \ RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # Add the "vagrant" user (because we are all familiar with having it) -RUN useradd -d /home/vagrant -ms /bin/bash -g root -G sudo -p vagrant vagrant +RUN useradd -d /home/vagrant -ms /bin/bash -g www-data -G sudo -p vagrant vagrant # Forward logs to docker log collector. RUN ln -sf /dev/stdout /var/log/apache2/access.log && \ @@ -127,7 +127,7 @@ ENV APACHE_PID_FILE /var/run/apache2.pid # Clone Drupal -RUN drush dl -v -d drupal-8.5.6 --destination="/var/www" --drupal-project-rename="drupal8" +RUN drush dl -v -d drupal-8.6.1 --destination="/var/www" --drupal-project-rename="drupal8" RUN echo "Cloned Drupal 8...." # Clone our WCMS profile @@ -140,6 +140,49 @@ RUN cd /var/www/drupal8/profiles && \ RUN cd /var/www/drupal8/sites/default && \ cp default.settings.php settings.php +RUN cd /var/www/drupal8 && \ + ln -s . fdsu1 && \ + ln -s . fdsu2 && \ + ln -s . fdsu3 && \ + ln -s . fdsu4 + +## Copy the sites.php file to the Drupal 8 sites folder. +COPY sites.php /var/www/drupal8/sites + +RUN mkdir /var/www/drupal8/sites/docker.fdsu1 +RUN mkdir /var/www/drupal8/sites/docker.fdsu1/files +RUN mkdir /var/www/drupal8/sites/docker.fdsu1/files/temp +RUN mkdir /var/www/drupal8/sites/docker.fdsu1/modules +## Create settings.php file +COPY settings.conf /var/www/drupal8/sites/docker.fdsu1/settings.php +RUN mkdir /var/www/drupal8/sites/docker.fdsu2 +RUN mkdir /var/www/drupal8/sites/docker.fdsu2/files +RUN mkdir /var/www/drupal8/sites/docker.fdsu2/files/temp +RUN mkdir /var/www/drupal8/sites/docker.fdsu2/modules +## Create settings.php file +COPY settings.conf /var/www/drupal8/sites/docker.fdsu2/settings.php +RUN mkdir /var/www/drupal8/sites/docker.fdsu3 +RUN mkdir /var/www/drupal8/sites/docker.fdsu3/files +RUN mkdir /var/www/drupal8/sites/docker.fdsu3/files/temp +RUN mkdir /var/www/drupal8/sites/docker.fdsu3/modules +## Create settings.php file +COPY settings.conf /var/www/drupal8/sites/docker.fdsu3/settings.php +RUN mkdir /var/www/drupal8/sites/docker.fdsu4 +RUN mkdir /var/www/drupal8/sites/docker.fdsu4/files +RUN mkdir /var/www/drupal8/sites/docker.fdsu4/files/temp +RUN mkdir /var/www/drupal8/sites/docker.fdsu4/modules +## Create settings.php file +COPY settings.conf /var/www/drupal8/sites/docker.fdsu4/settings.php + +RUN mkdir /var/www/drupal8/sites/docker.fdsu1/files/config_acqTmp && \ + mkdir /var/www/drupal8/sites/docker.fdsu1/files/config_acqTmp/sync +RUN mkdir /var/www/drupal8/sites/docker.fdsu2/files/config_acqTmp && \ + mkdir /var/www/drupal8/sites/docker.fdsu2/files/config_acqTmp/sync +RUN mkdir /var/www/drupal8/sites/docker.fdsu3/files/config_acqTmp && \ + mkdir /var/www/drupal8/sites/docker.fdsu3/files/config_acqTmp/sync +RUN mkdir /var/www/drupal8/sites/docker.fdsu4/files/config_acqTmp && \ + mkdir /var/www/drupal8/sites/docker.fdsu4/files/config_acqTmp/sync + # Add Drupal permissions to the drupal folder RUN chown -R vagrant:www-data /var/www/drupal8 RUN chmod -R g+w /var/www/drupal8 diff --git a/build-scripts/drupal8/docker-entrypoint.sh b/build-scripts/drupal8/docker-entrypoint.sh index 317e4ae92786558717c565e27c651f7d45916b64..5ee7a61277b3bee100662980d9e9d910c30c98f9 100644 --- a/build-scripts/drupal8/docker-entrypoint.sh +++ b/build-scripts/drupal8/docker-entrypoint.sh @@ -36,5 +36,9 @@ if [ -n "$APACHE_SITE_ALIAS" ]; then sed -i 's@^\s*ServerAlias.*@'" ServerAlias ${APACHE_SITE_ALIAS}"'@' /etc/apache2/sites-available/000-default.conf fi +## Set permissions for drupal8 and html folder +chown -R vagrant:www-data /var/www +chmod -R g+w /var/www + # Now that we're set up, run whatever command was passed to the entrypoint. exec "$@" diff --git a/build-scripts/drupal8/settings.conf b/build-scripts/drupal8/settings.conf new file mode 100644 index 0000000000000000000000000000000000000000..19c845a78e80b354d4f97fc1e02d32cd474f2035 --- /dev/null +++ b/build-scripts/drupal8/settings.conf @@ -0,0 +1,32 @@ +<?php +// Server domain name. +$UWhost = 'docker:4444'; +// Path to site root. +$UWpref = 'fdsu1'; +// Name of site database. +$UWdb = 'd8_fdsu1'; +// Username to connect to site database. +$UWuser = 'drupal'; +// Password to connect to site database. +$UWpass = 'vagrant'; +// Host name to connect to site database. +$UWpri = 'db'; + +require_once(DRUPAL_ROOT . '/profiles/uw_base_profile/drupal-settings.php'); + +// File system settings. +$settings['file_default_scheme'] = 'public'; +$settings['file_private_path'] = 'sites/docker.fdsu1/files/private/'; +$settings['file_public_path'] = 'sites/docker.fdsu1/files'; +$settings['file_temporary_path'] = 'sites/docker.fdsu1/files/temp/'; +$settings['file_chmod_directory'] = 02775; +$settings['file_chmod_file'] = 0664; + +// D8 required settings. +$settings['hash_salt'] = 'N2I1NDliYWNjNGJjYzUzODc0MDg3NTc2MTgwMGMyZTdhZGZiZGE5YTdkZGU4YTExMGZkNjhhMT'; +$settings['install_profile'] = 'uw_base_profile'; +$settings['trusted_host_patterns'] = ['^docker$',]; +$config_directories['sync'] = 'sites/docker.fdsu1/files/config_acqTmp/sync'; +if (file_exists(__DIR__ . '/settings.local.php')) { + include __DIR__ . '/settings.local.php'; +} \ No newline at end of file diff --git a/build-scripts/drupal8/sites.php b/build-scripts/drupal8/sites.php new file mode 100644 index 0000000000000000000000000000000000000000..7d3c6e5325d6476a8bede0ee814bee3d903c6eac --- /dev/null +++ b/build-scripts/drupal8/sites.php @@ -0,0 +1,8 @@ +<?php + + $sites = array( + 'docker.fdsu1' => 'fdsu1', + 'docker.fdsu2' => 'fdsu2', + 'docker.fdsu3' => 'fdsu3', + 'docker.fdsu4' => 'fdsu4', + ); \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 6afb13ddb1438bc44b9aaf021148142baed37515..aaca59dd60e781837e6802592bd2a071335275a4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -31,10 +31,10 @@ services: - ./db-backups:/var/mysql/backups:delegated environment: MYSQL_ROOT_PASSWORD: root - MYSQL_DATABASE: drupal8db + MYSQL_DATABASE: d8_fdsu1 MYSQL_USER: drupal - MYSQL_PASSWORD: verybadpassword - ADDITIONAL_DATABASES: fdsu1 fdsu2 fdsu3 fdsu4 + MYSQL_PASSWORD: vagrant + ADDITIONAL_DATABASES: d7_fdsu1 d7_fdsu2 d7_fdsu3 d7_fdsu4 d8_fdsu2 d8_fdsu3 d8_fdsu4 ports: - "3306:3306"