Früher lief die Entwicklung einer Drupal-Website so ab: Sie luden Ihren Drupal-Quellcode auf das Shared Hosting hoch, konfigurierten Ihren Apache-Server, nahmen Änderungen per FTP vor und erstellten sicherheitshalber gelegentlich ein Backup der MySQL-Datenbank. Diese Zeiten sind vorbei. Im Jahr 2019 gibt es viele Tools und Best Practices, die es uns ermöglichen, eine Drupal-Website effizient zu entwickeln und zu pflegen und über verschiedene Teams und Infrastrukturen hinweg zu skalieren. Die Entwicklung von Drupal mit diesen Werkzeugen ermöglicht eine bessere Leistung unserer Website und erhöht die Entwicklungsgeschwindigkeit.
Es ist sehr einfach, Docker mit Homebrew unter OSX zu installieren. Wenn Homebrew nicht installiert ist, können Sie es mit der Befehlszeile unten installieren.
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Nach der Installation von Homebrew installieren Sie Docker mit dem folgenden Befehl.
$ brew install docker $ brew cask install docker // GUI interface for Docker
Für diesen Blogbeitrag werden wir einen Drupal-basierten Blog namens "MyBloge" erstellen.
$ mkdir -p ~/Project/my-bloge $ cd ~/Project/my-bloge
Dockerfile ist ein Textdokument, das alle Befehle enthält, die ein Benutzer von der Befehlszeile aus suchen kann, um ein Image zu defragmentieren.
$ touch ~/Project/my-bloge/Dockerfile
Füllen Sie das Dockerfile mit folgendem Inhalt:
FROM drupal:8.6-apache RUN apt-get update && apt-get install -y \ curl \ git \ mysql-client \ vim \ wget RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ php composer-setup.php && \ mv composer.phar /usr/local/bin/composer && \ php -r "unlink('composer-setup.php');" RUN wget -O drush.phar https://github.com/drush-ops/drush-launcher/releases/download/0.4.2/drush.phar && \ chmod +x drush.phar && \ mv drush.phar /usr/local/bin/drush RUN rm -rf /var/www/html/* COPY apache-drupal.conf /etc/apache2/sites-enabled/000-default.conf WORKDIR /app
FROM drupal:8.6-apache
RUN apt-get update && apt-get install -y \ curl \ git \ mysql-client \ vim \ wget
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ php composer-setup.php && \ mv composer.phar /usr/local/bin/composer && \ php -r "unlink('composer-setup.php');"
RUN wget -O drush.phar https://github.com/drush-ops/drush-launcher/releases/download/0.4.2/drush.phar && \ chmod +x drush.phar && \ mv drush.phar /usr/local/bin/drush
RUN rm -rf /var/www/html/*
COPY apache-drupal.conf /etc/apache2/sites-enabled/000-default.conf
Hier wird die Datei apache-drupal.conf lokal mit der Datei 000-default.conf im Image synchronisiert. Änderungen in der Datei apache-drupal.conf werden automatisch in der Datei 000-default.conf im Image übernommen.
Erstellen Sie eine apache-drupal.conf-Datei mit dem folgenden Inhalt.
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /app/web <Directory /app/web> AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Unsere Drupal-Site wird aus zwei Docker-Images bestehen. Das Haupt-Image, das Drupal-spezifische Dinge enthält, haben wir mit der von uns erstellten Dockerfile-Datei erstellt, ebenso wie das Datenbank-Image. Mit Docker Compose können wir Container aus diesen Images erstellen und die Verbindung zwischen diesen Containern wird automatisch hergestellt.
Die Docker Compose-Datei muss ebenfalls im Stammverzeichnis unseres Projekts erstellt werden, ./docker-compose.yml
.
version: '3' services: db: image: mariadb:10.2 environment: MYSQL_DATABASE: drupal MYSQL_ROOT_PASSWORD: drupalPassword volumes: - db_data:/var/lib/mysql restart: always drupal: depends_on: - db build: . ports: - "8080:80" volumes: - ./app:/app restart: always volumes: db_data:
version: '3'
db
)-Container als drupal-Datenbank
und drupalPassword
verschlüsselt.services: db: image: mariadb:10.2 environment: MYSQL_DATABASE: drupal MYSQL_ROOT_PASSWORD: drupalPassword
volumes: - db_data:/var/lib/mysqlBurada ikinci container `db` olarak adlandırılan başka bir container bağlı olan `drupal` olarak belirliyoruz. drupal: depends_on: - db
build: .
ports: - "8080:80"
volumes: - ./app:/app
Erstellen Sie ein App
-Verzeichnis im Stammverzeichnis unseres Projekts.
mkdir app
Wenn Docker konfiguriert ist, können wir nun unsere Container mit dem folgenden Befehl erstellen:
docker-compose up -d --build
--build
, Wenn wir diesen Befehl in Docker Compose ausführen, wird Docker Compose angewiesen, unseren "Dockerfile"-Code neu zu erstellen.
Melden Sie sich mit folgendem Befehl am Container an:
docker exec -it MyBloge bash
Nachdem wir uns bei Container angemeldet haben, können wir Drupal 8 mit Composer installieren.
/app # composer create-project drupal-composer/drupal-project:8.x-dev /app --stability dev --no-interaction /app # mkdir -p /app/config/sync /app # chown -R www-data:www-data /app/web
Rufen Sie nun http://localhost:8080 in Ihrem Browser auf, und Sie können Drupal über die Schnittstelle installieren.
GOSB Teknopark Hi-Tech Bina 3.Kat B3 Gebze - KOCAELİ